Backwards compatible to SDK 17

This commit is contained in:
topjohnwu
2018-12-28 05:15:59 +08:00
parent bb2df02dff
commit 496b22026f
37 changed files with 115 additions and 72 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ public class w<T extends DelegateWorker> extends Worker {
try {
base = ((Class<T>) ((ParameterizedType) getClass().getGenericSuperclass())
.getActualTypeArguments()[0]).newInstance();
} catch (IllegalAccessException | InstantiationException ignored) {}
} catch (Exception ignored) {}
}
@NonNull
@@ -30,7 +30,7 @@ public class AboutActivity extends BaseActivity {
@Override
public int getDarkTheme() {
return R.style.AppTheme_StatusBar_Dark;
return R.style.AppTheme_NoDrawer_Dark;
}
@Override
@@ -21,7 +21,7 @@ public class DonationActivity extends BaseActivity {
@Override
public int getDarkTheme() {
return R.style.AppTheme_StatusBar_Dark;
return R.style.AppTheme_NoDrawer_Dark;
}
@Override
@@ -85,7 +85,7 @@ public class FlashActivity extends BaseActivity {
@Override
public int getDarkTheme() {
return R.style.AppTheme_StatusBar_Dark;
return R.style.AppTheme_NoDrawer_Dark;
}
@Override
@@ -1,6 +1,7 @@
package com.topjohnwu.magisk;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
@@ -75,7 +76,9 @@ public class MainActivity extends BaseActivity
}
};
toolbarElevation = toolbar.getElevation();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
toolbarElevation = toolbar.getElevation();
}
drawer.addDrawerListener(toggle);
toggle.syncState();
@@ -208,6 +211,8 @@ public class MainActivity extends BaseActivity
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.replace(R.id.content_frame, navFragment)
.commitNow();
toolbar.setElevation(setElevation ? toolbarElevation : 0);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
toolbar.setElevation(setElevation ? toolbarElevation : 0);
}
}
}
@@ -25,6 +25,7 @@ import com.topjohnwu.magisk.utils.SuConnector;
import java.io.IOException;
import androidx.annotation.Nullable;
import androidx.appcompat.content.res.AppCompatResources;
import butterknife.BindView;
public class SuRequestActivity extends BaseActivity {
@@ -125,7 +126,8 @@ public class SuRequestActivity extends BaseActivity {
appIcon.setImageDrawable(policy.info.loadIcon(pm));
appNameView.setText(policy.appName);
packageNameView.setText(policy.packageName);
warning.setCompoundDrawablesRelativeWithIntrinsicBounds(getDrawable(R.drawable.ic_warning), null, null, null);
warning.setCompoundDrawablesRelativeWithIntrinsicBounds(
AppCompatResources.getDrawable(this, R.drawable.ic_warning), null, null, null);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.allow_timeout, android.R.layout.simple_spinner_item);
@@ -20,6 +20,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
@@ -33,6 +34,10 @@ public abstract class BaseActivity extends AppCompatActivity implements Topic.Au
private ActivityResultListener activityResultListener;
public App app = App.self;
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
@Override
public int[] getSubscribedTopics() {
return EMPTY_INT_ARRAY;
@@ -1,6 +1,7 @@
package com.topjohnwu.magisk.fragments;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -27,7 +28,9 @@ public class LogFragment extends BaseFragment {
View v = inflater.inflate(R.layout.fragment_log, container, false);
unbinder = new LogFragment_ViewBinding(this, v);
((MainActivity) requireActivity()).toolbar.setElevation(0);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
((MainActivity) requireActivity()).toolbar.setElevation(0);
}
TabFragmentAdapter adapter = new TabFragmentAdapter(getChildFragmentManager());
@@ -37,7 +37,7 @@ import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceGroupAdapter;
import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceViewHolder;
import androidx.preference.SwitchPreference;
import androidx.preference.SwitchPreferenceCompat;
import androidx.recyclerview.widget.RecyclerView;
public class SettingsFragment extends PreferenceFragmentCompat
@@ -105,8 +105,8 @@ public class SettingsFragment extends PreferenceFragmentCompat
suNotification = (ListPreference) findPreference(Const.Key.SU_NOTIFICATION);
multiuserConfig = (ListPreference) findPreference(Const.Key.SU_MULTIUSER_MODE);
nsConfig = (ListPreference) findPreference(Const.Key.SU_MNT_NS);
SwitchPreference reauth = (SwitchPreference) findPreference(Const.Key.SU_REAUTH);
SwitchPreference fingerprint = (SwitchPreference) findPreference(Const.Key.SU_FINGERPRINT);
SwitchPreferenceCompat reauth = (SwitchPreferenceCompat) findPreference(Const.Key.SU_REAUTH);
SwitchPreferenceCompat fingerprint = (SwitchPreferenceCompat) findPreference(Const.Key.SU_FINGERPRINT);
updateChannel.setOnPreferenceChangeListener((p, o) -> {
String prev =String.valueOf(Data.updateChannel);
@@ -182,7 +182,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
int i = 1;
for (Locale locale : LocaleManager.locales) {
entries[i] = locale.getDisplayName(locale);
entryValues[i++] = locale.toLanguageTag();
entryValues[i++] = LocaleManager.toLanguageTag(locale);
}
lp.setEntries(entries);
lp.setEntryValues(entryValues);
@@ -264,10 +264,10 @@ public class SettingsFragment extends PreferenceFragmentCompat
String key = preference.getKey();
switch (key) {
case Const.Key.SU_FINGERPRINT:
boolean checked = ((SwitchPreference) preference).isChecked();
((SwitchPreference) preference).setChecked(!checked);
boolean checked = ((SwitchPreferenceCompat) preference).isChecked();
((SwitchPreferenceCompat) preference).setChecked(!checked);
FingerprintHelper.showAuthDialog(requireActivity(), () -> {
((SwitchPreference) preference).setChecked(checked);
((SwitchPreferenceCompat) preference).setChecked(checked);
app.mDB.setSettings(key, checked ? 1 : 0);
});
break;