mirror of
https://github.com/areteruhiro/LIME-beta-hiro.git
synced 2025-02-10 23:41:38 +09:00
Merge branch 'master' into master
This commit is contained in:
commit
405d0eb767
45
.github/workflows/release.yml
vendored
Normal file
45
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
on:
|
||||
workflow_dispatch:
|
||||
branches-ignore:
|
||||
- '**'
|
||||
tags:
|
||||
- 'v*'
|
||||
create:
|
||||
branches-ignore:
|
||||
- '**'
|
||||
tags:
|
||||
- 'v*'
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
- name: Build with Gradle
|
||||
run: |
|
||||
if [[ -n "${{ secrets.KEYSTORE_BASE64 }}" ]]; then
|
||||
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > release.keystore
|
||||
export KEYSTORE_PASSWORD="${{ secrets.KEYSTORE_PASSWORD }}"
|
||||
export KEY_ALIAS="${{ secrets.KEY_ALIAS }}"
|
||||
export KEY_PASSWORD="${{ secrets.KEY_PASSWORD }}"
|
||||
fi
|
||||
./gradlew assembleRelease
|
||||
- name: Get apk path
|
||||
id: apk-path
|
||||
run: |
|
||||
path=$(find **/build/outputs/apk -name '*.apk' -type f | head -1)
|
||||
echo "::set-output name=path::$path"
|
||||
- name: Upload apk file
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: apk
|
||||
path: ${{ steps.apk-path.outputs.path }}
|
||||
- name: Upload Release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
allowUpdates: true
|
||||
artifacts: ${{ steps.apk-path.outputs.path }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
@ -27,7 +27,17 @@ android {
|
||||
keyPassword System.getenv('KEY_PASSWORD')
|
||||
}
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
debug {
|
||||
storeFile rootProject.file('debug.keystore')
|
||||
}
|
||||
release {
|
||||
storeFile rootProject.file('release.keystore')
|
||||
storePassword System.getenv('KEYSTORE_PASSWORD')
|
||||
keyAlias System.getenv('KEY_ALIAS')
|
||||
keyPassword System.getenv('KEY_PASSWORD')
|
||||
}
|
||||
}
|
||||
buildTypes {
|
||||
debug {
|
||||
minifyEnabled false
|
||||
@ -38,7 +48,6 @@ android {
|
||||
minifyEnabled false
|
||||
proguardFiles += 'proguard-rules.pro'
|
||||
if (file('release.jks').exists()) {
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,20 +1,21 @@
|
||||
package io.github.chipppppppppp.lime;
|
||||
|
||||
import de.robv.android.xposed.XposedBridge;
|
||||
import de.robv.android.xposed.IXposedHookLoadPackage;
|
||||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||
import de.robv.android.xposed.XposedHelpers;
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
import de.robv.android.xposed.XSharedPreferences;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Canvas;
|
||||
import android.net.Uri;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.net.Uri;
|
||||
import android.webkit.WebView;
|
||||
import androidx.browser.customtabs.CustomTabsIntent;
|
||||
import android.content.Intent;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import de.robv.android.xposed.IXposedHookLoadPackage;
|
||||
import de.robv.android.xposed.XC_MethodHook;
|
||||
import de.robv.android.xposed.XSharedPreferences;
|
||||
import de.robv.android.xposed.XposedBridge;
|
||||
import de.robv.android.xposed.XposedHelpers;
|
||||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||
|
||||
public class Main implements IXposedHookLoadPackage {
|
||||
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lparam) throws Throwable {
|
||||
@ -33,7 +34,21 @@ public class Main implements IXposedHookLoadPackage {
|
||||
XposedHelpers.findAndHookMethod(hookTarget, "onResume", new XC_MethodHook() {
|
||||
@Override
|
||||
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
|
||||
((ViewGroup) ((Activity) param.thisObject).findViewById(2131433343)).getChildAt(6).setVisibility(View.GONE);
|
||||
Activity activity = (Activity) param.thisObject;
|
||||
int resourceId = activity.getResources().getIdentifier("main_tab_container", "id", activity.getPackageName());
|
||||
ViewGroup vG = ((ViewGroup) activity.findViewById(resourceId));
|
||||
View chat = vG.getChildAt(4); // chat
|
||||
vG.getChildAt(5).setVisibility(View.GONE); // timeline spacer
|
||||
vG.getChildAt(6).setVisibility(View.GONE); // timeline
|
||||
View newsSpacer = vG.getChildAt(7); // news spacer
|
||||
|
||||
ConstraintLayout.LayoutParams paramChat = (ConstraintLayout.LayoutParams)chat.getLayoutParams();
|
||||
paramChat.rightToLeft = vG.getChildAt(7).getId();
|
||||
chat.setLayoutParams(paramChat);
|
||||
|
||||
ConstraintLayout.LayoutParams paramNewsSpacer = (ConstraintLayout.LayoutParams)newsSpacer.getLayoutParams();
|
||||
paramNewsSpacer.leftToRight = chat.getId();
|
||||
newsSpacer.setLayoutParams(paramNewsSpacer);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package io.github.chipppppppppp.lime;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import android.widget.Switch;
|
||||
import android.content.SharedPreferences;
|
||||
@ -17,31 +19,50 @@ public class SettingsActivity extends AppCompatActivity {
|
||||
Switch switchRedirectWebView = findViewById(R.id.switch_redirect_web_view);
|
||||
Switch switchOpenInBrowser = findViewById(R.id.switch_open_in_browser);
|
||||
|
||||
SharedPreferences prefs = getSharedPreferences("settings", MODE_WORLD_READABLE);
|
||||
switchDeleteVoom.setChecked(prefs.getBoolean("delete_voom", true));
|
||||
switchDeleteAds.setChecked(prefs.getBoolean("delete_ads", true));
|
||||
switchRedirectWebView.setChecked(prefs.getBoolean("redirect_web_view", true));
|
||||
switchOpenInBrowser.setChecked(prefs.getBoolean("open_in_browser", false));
|
||||
try {
|
||||
SharedPreferences prefs;
|
||||
prefs = getSharedPreferences("settings", MODE_WORLD_READABLE);
|
||||
switchDeleteVoom.setChecked(prefs.getBoolean("delete_voom", true));
|
||||
switchDeleteAds.setChecked(prefs.getBoolean("delete_ads", true));
|
||||
switchRedirectWebView.setChecked(prefs.getBoolean("redirect_web_view", true));
|
||||
switchOpenInBrowser.setChecked(prefs.getBoolean("open_in_browser", false));
|
||||
|
||||
switchDeleteVoom.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
prefs.edit().putBoolean("delete_voom", isChecked).apply();
|
||||
});
|
||||
switchDeleteVoom.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
prefs.edit().putBoolean("delete_voom", isChecked).apply();
|
||||
});
|
||||
|
||||
switchDeleteAds.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
prefs.edit().putBoolean("delete_ads", isChecked).apply();
|
||||
});
|
||||
switchDeleteAds.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
prefs.edit().putBoolean("delete_ads", isChecked).apply();
|
||||
});
|
||||
|
||||
switchRedirectWebView.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
prefs.edit().putBoolean("redirect_web_view", isChecked).apply();
|
||||
if (isChecked) switchOpenInBrowser.setEnabled(true);
|
||||
else {
|
||||
switchOpenInBrowser.setEnabled(false);
|
||||
switchOpenInBrowser.setChecked(false);
|
||||
}
|
||||
});
|
||||
switchRedirectWebView.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
prefs.edit().putBoolean("redirect_web_view", isChecked).apply();
|
||||
if (isChecked) switchOpenInBrowser.setEnabled(true);
|
||||
else {
|
||||
switchOpenInBrowser.setEnabled(false);
|
||||
switchOpenInBrowser.setChecked(false);
|
||||
}
|
||||
});
|
||||
|
||||
switchOpenInBrowser.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
prefs.edit().putBoolean("open_in_browser", isChecked).apply();
|
||||
});
|
||||
switchOpenInBrowser.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
prefs.edit().putBoolean("open_in_browser", isChecked).apply();
|
||||
});
|
||||
} catch (SecurityException e) {
|
||||
showModuleNotEnabledAlert();
|
||||
}
|
||||
}
|
||||
|
||||
private void showModuleNotEnabledAlert() {
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle("Error")
|
||||
.setMessage("Module not enabled!")
|
||||
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.setCancelable(false)
|
||||
.show();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user