mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-11-28 04:25:27 +00:00
Add changelogs
This commit is contained in:
parent
b2873dd44b
commit
1cd2c5e653
5
app/src/main/assets/changelog.md
Normal file
5
app/src/main/assets/changelog.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
### v5.4.3 (68)
|
||||||
|
- Fix dynamic resource loading, should prevent crashing when chacking SafetyNet
|
||||||
|
- Update SignAPK to use very little RAM, should expand old device support
|
||||||
|
- Support settings migration after hiding Magisk Manager
|
||||||
|
- Add changelog in app
|
@ -4,7 +4,7 @@ body {
|
|||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
background-color: #303030;
|
background-color: #424242;
|
||||||
color: white;
|
color: white;
|
||||||
padding: 15px; }
|
padding: 15px; }
|
||||||
|
|
||||||
|
@ -5,18 +5,13 @@ import android.net.Uri;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
import android.support.v7.app.AlertDialog;
|
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.text.Html;
|
|
||||||
import android.text.Spanned;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.method.LinkMovementMethod;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
|
import com.topjohnwu.magisk.asyncs.MarkDownWindow;
|
||||||
import com.topjohnwu.magisk.components.AboutCardRow;
|
import com.topjohnwu.magisk.components.AboutCardRow;
|
||||||
import com.topjohnwu.magisk.components.Activity;
|
import com.topjohnwu.magisk.components.Activity;
|
||||||
import com.topjohnwu.magisk.components.AlertDialogBuilder;
|
|
||||||
import com.topjohnwu.magisk.utils.Const;
|
import com.topjohnwu.magisk.utils.Const;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -31,7 +26,6 @@ public class AboutActivity extends Activity {
|
|||||||
@BindView(R.id.toolbar) Toolbar toolbar;
|
@BindView(R.id.toolbar) Toolbar toolbar;
|
||||||
@BindView(R.id.app_version_info) AboutCardRow appVersionInfo;
|
@BindView(R.id.app_version_info) AboutCardRow appVersionInfo;
|
||||||
@BindView(R.id.app_changelog) AboutCardRow appChangelog;
|
@BindView(R.id.app_changelog) AboutCardRow appChangelog;
|
||||||
@BindView(R.id.app_developers) AboutCardRow appDevelopers;
|
|
||||||
@BindView(R.id.app_translators) AboutCardRow appTranslators;
|
@BindView(R.id.app_translators) AboutCardRow appTranslators;
|
||||||
@BindView(R.id.app_source_code) AboutCardRow appSourceCode;
|
@BindView(R.id.app_source_code) AboutCardRow appSourceCode;
|
||||||
@BindView(R.id.support_thread) AboutCardRow supportThread;
|
@BindView(R.id.support_thread) AboutCardRow supportThread;
|
||||||
@ -40,9 +34,6 @@ public class AboutActivity extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
if (getMagiskManager().isDarkTheme) {
|
|
||||||
setTheme(R.style.AppTheme_Transparent_Dark);
|
|
||||||
}
|
|
||||||
setContentView(R.layout.activity_about);
|
setContentView(R.layout.activity_about);
|
||||||
ButterKnife.bind(this);
|
ButterKnife.bind(this);
|
||||||
|
|
||||||
@ -55,58 +46,17 @@ public class AboutActivity extends Activity {
|
|||||||
ab.setDisplayHomeAsUpEnabled(true);
|
ab.setDisplayHomeAsUpEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
appVersionInfo.setSummary(String.format(Locale.US, "%s (%d)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE));
|
appVersionInfo.setSummary(String.format(Locale.US, "%s (%d) (%s)",
|
||||||
|
BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE, getPackageName()));
|
||||||
String changes = null;
|
|
||||||
try (InputStream is = getAssets().open("changelog.html")) {
|
|
||||||
int size = is.available();
|
|
||||||
|
|
||||||
byte[] buffer = new byte[size];
|
|
||||||
is.read(buffer);
|
|
||||||
|
|
||||||
changes = new String(buffer);
|
|
||||||
} catch (IOException ignored) {
|
|
||||||
}
|
|
||||||
|
|
||||||
appChangelog.removeSummary();
|
appChangelog.removeSummary();
|
||||||
if (changes == null) {
|
appChangelog.setOnClickListener(v -> {
|
||||||
appChangelog.setVisibility(View.GONE);
|
try {
|
||||||
} else {
|
InputStream is = getAssets().open("changelog.md");
|
||||||
Spanned result;
|
new MarkDownWindow(this, getString(R.string.app_changelog), is).exec();
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
|
} catch (IOException e) {
|
||||||
result = Html.fromHtml(changes, Html.TO_HTML_PARAGRAPH_LINES_CONSECUTIVE);
|
e.printStackTrace();
|
||||||
} else {
|
|
||||||
result = Html.fromHtml(changes);
|
|
||||||
}
|
}
|
||||||
appChangelog.setOnClickListener(v -> {
|
|
||||||
AlertDialog d = new AlertDialogBuilder(this)
|
|
||||||
.setTitle(R.string.app_changelog)
|
|
||||||
.setMessage(result)
|
|
||||||
.setPositiveButton(android.R.string.ok, null)
|
|
||||||
.show();
|
|
||||||
|
|
||||||
//noinspection ConstantConditions
|
|
||||||
((TextView) d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
appDevelopers.removeSummary();
|
|
||||||
appDevelopers.setOnClickListener(view -> {
|
|
||||||
Spanned result;
|
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
|
|
||||||
result = Html.fromHtml(getString(R.string.app_developers_), Html.TO_HTML_PARAGRAPH_LINES_CONSECUTIVE);
|
|
||||||
} else {
|
|
||||||
result = Html.fromHtml(getString(R.string.app_developers_));
|
|
||||||
}
|
|
||||||
AlertDialog d = new AlertDialogBuilder(this)
|
|
||||||
.setTitle(R.string.app_developers)
|
|
||||||
.setMessage(result)
|
|
||||||
.setPositiveButton(android.R.string.ok, null)
|
|
||||||
.create();
|
|
||||||
|
|
||||||
d.show();
|
|
||||||
//noinspection ConstantConditions
|
|
||||||
((TextView) d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
|
|
||||||
});
|
});
|
||||||
|
|
||||||
String translators = getString(R.string.translators);
|
String translators = getString(R.string.translators);
|
||||||
|
@ -52,6 +52,7 @@ public class MagiskManager extends Application {
|
|||||||
public String bootBlock = null;
|
public String bootBlock = null;
|
||||||
public int snet_version;
|
public int snet_version;
|
||||||
public int updateServiceVersion;
|
public int updateServiceVersion;
|
||||||
|
public int appVersion;
|
||||||
|
|
||||||
// Data
|
// Data
|
||||||
public Map<String, Module> moduleMap;
|
public Map<String, Module> moduleMap;
|
||||||
@ -163,6 +164,7 @@ public class MagiskManager extends Application {
|
|||||||
snet_version = prefs.getInt(Const.Key.SNET_VER, -1);
|
snet_version = prefs.getInt(Const.Key.SNET_VER, -1);
|
||||||
updateServiceVersion = prefs.getInt(Const.Key.UPDATE_SERVICE_VER, -1);
|
updateServiceVersion = prefs.getInt(Const.Key.UPDATE_SERVICE_VER, -1);
|
||||||
customChannelUrl = prefs.getString(Const.Key.CUSTOM_CHANNEL, "");
|
customChannelUrl = prefs.getString(Const.Key.CUSTOM_CHANNEL, "");
|
||||||
|
appVersion = prefs.getInt(Const.Key.APP_VER, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void toast(String msg, int duration) {
|
public static void toast(String msg, int duration) {
|
||||||
|
@ -16,12 +16,16 @@ import android.view.Menu;
|
|||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.topjohnwu.magisk.asyncs.MarkDownWindow;
|
||||||
import com.topjohnwu.magisk.components.Activity;
|
import com.topjohnwu.magisk.components.Activity;
|
||||||
import com.topjohnwu.magisk.utils.Const;
|
import com.topjohnwu.magisk.utils.Const;
|
||||||
import com.topjohnwu.magisk.utils.Shell;
|
import com.topjohnwu.magisk.utils.Shell;
|
||||||
import com.topjohnwu.magisk.utils.Topic;
|
import com.topjohnwu.magisk.utils.Topic;
|
||||||
import com.topjohnwu.magisk.utils.Utils;
|
import com.topjohnwu.magisk.utils.Utils;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
|
||||||
@ -42,6 +46,7 @@ public class MainActivity extends Activity
|
|||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
|
|
||||||
MagiskManager mm = getMagiskManager();
|
MagiskManager mm = getMagiskManager();
|
||||||
|
prefs = mm.prefs;
|
||||||
|
|
||||||
if (!mm.hasInit) {
|
if (!mm.hasInit) {
|
||||||
Intent intent = new Intent(this, SplashActivity.class);
|
Intent intent = new Intent(this, SplashActivity.class);
|
||||||
@ -58,11 +63,6 @@ public class MainActivity extends Activity
|
|||||||
ActivityCompat.requestPermissions(this, new String[] { perm }, 0);
|
ActivityCompat.requestPermissions(this, new String[] { perm }, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
prefs = mm.prefs;
|
|
||||||
|
|
||||||
if (mm.isDarkTheme) {
|
|
||||||
setTheme(R.style.AppTheme_Dark);
|
|
||||||
}
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
ButterKnife.bind(this);
|
ButterKnife.bind(this);
|
||||||
@ -91,6 +91,17 @@ public class MainActivity extends Activity
|
|||||||
navigate(getIntent().getStringExtra(Const.Key.OPEN_SECTION));
|
navigate(getIntent().getStringExtra(Const.Key.OPEN_SECTION));
|
||||||
|
|
||||||
navigationView.setNavigationItemSelectedListener(this);
|
navigationView.setNavigationItemSelectedListener(this);
|
||||||
|
|
||||||
|
if (mm.appVersion < BuildConfig.VERSION_CODE) {
|
||||||
|
prefs.edit().putInt(Const.Key.APP_VER, BuildConfig.VERSION_CODE).apply();
|
||||||
|
mm.appVersion = BuildConfig.VERSION_CODE;
|
||||||
|
try {
|
||||||
|
InputStream is = getAssets().open("changelog.md");
|
||||||
|
new MarkDownWindow(this, getString(R.string.app_changelog), is).exec();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -38,10 +38,6 @@ public class SettingsActivity extends Activity implements Topic.Subscriber {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
if (getMagiskManager().isDarkTheme) {
|
|
||||||
setTheme(R.style.AppTheme_Transparent_Dark);
|
|
||||||
}
|
|
||||||
|
|
||||||
setContentView(R.layout.activity_settings);
|
setContentView(R.layout.activity_settings);
|
||||||
ButterKnife.bind(this);
|
ButterKnife.bind(this);
|
||||||
|
|
||||||
|
@ -6,15 +6,23 @@ import android.webkit.WebView;
|
|||||||
|
|
||||||
import com.topjohnwu.magisk.MagiskManager;
|
import com.topjohnwu.magisk.MagiskManager;
|
||||||
import com.topjohnwu.magisk.R;
|
import com.topjohnwu.magisk.R;
|
||||||
|
import com.topjohnwu.magisk.utils.Utils;
|
||||||
import com.topjohnwu.magisk.utils.WebService;
|
import com.topjohnwu.magisk.utils.WebService;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
import org.commonmark.parser.Parser;
|
import org.commonmark.parser.Parser;
|
||||||
import org.commonmark.renderer.html.HtmlRenderer;
|
import org.commonmark.renderer.html.HtmlRenderer;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
public class MarkDownWindow extends ParallelTask<Void, Void, String> {
|
public class MarkDownWindow extends ParallelTask<Void, Void, String> {
|
||||||
|
|
||||||
private String mTitle, mUrl;
|
private String mTitle;
|
||||||
|
private String mUrl;
|
||||||
|
private InputStream is;
|
||||||
|
|
||||||
|
|
||||||
public MarkDownWindow(Activity context, String title, String url) {
|
public MarkDownWindow(Activity context, String title, String url) {
|
||||||
super(context);
|
super(context);
|
||||||
@ -22,9 +30,28 @@ public class MarkDownWindow extends ParallelTask<Void, Void, String> {
|
|||||||
mUrl = url;
|
mUrl = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MarkDownWindow(Activity context, String title, InputStream in) {
|
||||||
|
super(context);
|
||||||
|
mTitle = title;
|
||||||
|
is = in;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String doInBackground(Void... voids) {
|
protected String doInBackground(Void... voids) {
|
||||||
String md = WebService.getString(mUrl);
|
String md;
|
||||||
|
if (mUrl != null) {
|
||||||
|
md = WebService.getString(mUrl);
|
||||||
|
} else {
|
||||||
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||||
|
try {
|
||||||
|
Utils.inToOut(is, out);
|
||||||
|
md = out.toString();
|
||||||
|
is.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
Parser parser = Parser.builder().build();
|
Parser parser = Parser.builder().build();
|
||||||
HtmlRenderer renderer = HtmlRenderer.builder().build();
|
HtmlRenderer renderer = HtmlRenderer.builder().build();
|
||||||
Node doc = parser.parse(md);
|
Node doc = parser.parse(md);
|
||||||
|
@ -37,6 +37,9 @@ public class Activity extends AppCompatActivity {
|
|||||||
if (this instanceof Topic.Subscriber) {
|
if (this instanceof Topic.Subscriber) {
|
||||||
((Topic.Subscriber) this).subscribeTopics();
|
((Topic.Subscriber) this).subscribeTopics();
|
||||||
}
|
}
|
||||||
|
if (getMagiskManager().isDarkTheme) {
|
||||||
|
setTheme(R.style.AppTheme_Dark);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -9,8 +9,6 @@ import android.support.annotation.StyleRes;
|
|||||||
import android.support.v7.app.AlertDialog;
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.view.ViewStub;
|
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
@ -29,7 +27,6 @@ public class AlertDialogBuilder extends AlertDialog.Builder {
|
|||||||
@BindView(R.id.positive) Button positive;
|
@BindView(R.id.positive) Button positive;
|
||||||
@BindView(R.id.neutral) Button neutral;
|
@BindView(R.id.neutral) Button neutral;
|
||||||
@BindView(R.id.message) TextView messageView;
|
@BindView(R.id.message) TextView messageView;
|
||||||
@BindView(R.id.custom_view) ViewStub custom;
|
|
||||||
|
|
||||||
private DialogInterface.OnClickListener positiveListener;
|
private DialogInterface.OnClickListener positiveListener;
|
||||||
private DialogInterface.OnClickListener negativeListener;
|
private DialogInterface.OnClickListener negativeListener;
|
||||||
@ -59,20 +56,15 @@ public class AlertDialogBuilder extends AlertDialog.Builder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AlertDialog.Builder setView(int layoutResId) {
|
public AlertDialog.Builder setTitle(int titleId) {
|
||||||
custom.setLayoutResource(layoutResId);
|
return super.setTitle(titleId);
|
||||||
custom.inflate();
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AlertDialog.Builder setView(View view) {
|
public AlertDialog.Builder setView(int layoutResId) { return this; }
|
||||||
ViewGroup parent = (ViewGroup) custom.getParent();
|
|
||||||
int idx = parent.indexOfChild(custom);
|
@Override
|
||||||
parent.removeView(custom);
|
public AlertDialog.Builder setView(View view) { return this; }
|
||||||
parent.addView(view, idx);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AlertDialog.Builder setMessage(@Nullable CharSequence message) {
|
public AlertDialog.Builder setMessage(@Nullable CharSequence message) {
|
||||||
|
@ -118,6 +118,7 @@ public class Const {
|
|||||||
public static final String BOOT_FORMAT = "boot_format";
|
public static final String BOOT_FORMAT = "boot_format";
|
||||||
public static final String SNET_VER = "snet_version";
|
public static final String SNET_VER = "snet_version";
|
||||||
public static final String UPDATE_SERVICE_VER = "update_service_version";
|
public static final String UPDATE_SERVICE_VER = "update_service_version";
|
||||||
|
public static final String APP_VER = "app_version";
|
||||||
public static final String MAGISKHIDE = "magiskhide";
|
public static final String MAGISKHIDE = "magiskhide";
|
||||||
public static final String HOSTS = "hosts";
|
public static final String HOSTS = "hosts";
|
||||||
public static final String DISABLE = "disable";
|
public static final String DISABLE = "disable";
|
||||||
|
@ -24,14 +24,12 @@
|
|||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
style="?attr/cardStyle"
|
style="?attr/cardStyle"
|
||||||
app:cardUseCompatPadding="true">
|
app:cardUseCompatPadding="true">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -70,13 +68,6 @@
|
|||||||
app:icon="@drawable/ic_history"
|
app:icon="@drawable/ic_history"
|
||||||
app:text="@string/app_changelog"/>
|
app:text="@string/app_changelog"/>
|
||||||
|
|
||||||
<com.topjohnwu.magisk.components.AboutCardRow
|
|
||||||
android:id="@+id/app_developers"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
app:icon="@drawable/ic_person"
|
|
||||||
app:text="@string/app_developers"/>
|
|
||||||
|
|
||||||
<com.topjohnwu.magisk.components.AboutCardRow
|
<com.topjohnwu.magisk.components.AboutCardRow
|
||||||
android:id="@+id/app_translators"
|
android:id="@+id/app_translators"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -99,14 +90,12 @@
|
|||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
style="?attr/cardStyle"
|
style="?attr/cardStyle"
|
||||||
app:cardUseCompatPadding="true">
|
app:cardUseCompatPadding="true">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<com.topjohnwu.magisk.components.AboutCardRow
|
<com.topjohnwu.magisk.components.AboutCardRow
|
||||||
|
@ -38,7 +38,6 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:background="@color/button_panel_background_color"
|
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:visibility="gone">
|
android:visibility="gone">
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/message_panel"
|
android:id="@+id/message_panel"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:paddingBottom="12dip"
|
android:paddingBottom="12dip"
|
||||||
android:paddingEnd="20dip"
|
android:paddingEnd="20dip"
|
||||||
@ -25,11 +25,6 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<ViewStub
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/custom_view"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
style="?android:attr/buttonBarStyle"
|
style="?android:attr/buttonBarStyle"
|
||||||
android:id="@+id/button_panel"
|
android:id="@+id/button_panel"
|
||||||
@ -46,7 +41,7 @@
|
|||||||
android:id="@+id/negative"
|
android:id="@+id/negative"
|
||||||
style="?android:attr/buttonBarButtonStyle"
|
style="?android:attr/buttonBarButtonStyle"
|
||||||
android:layout_width="0dip"
|
android:layout_width="0dip"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="start"
|
android:layout_gravity="start"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:maxLines="2" />
|
android:maxLines="2" />
|
||||||
@ -55,7 +50,7 @@
|
|||||||
android:id="@+id/neutral"
|
android:id="@+id/neutral"
|
||||||
style="?android:attr/buttonBarButtonStyle"
|
style="?android:attr/buttonBarButtonStyle"
|
||||||
android:layout_width="0dip"
|
android:layout_width="0dip"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:maxLines="2" />
|
android:maxLines="2" />
|
||||||
@ -64,7 +59,7 @@
|
|||||||
android:id="@+id/positive"
|
android:id="@+id/positive"
|
||||||
style="?android:attr/buttonBarButtonStyle"
|
style="?android:attr/buttonBarButtonStyle"
|
||||||
android:layout_width="0dip"
|
android:layout_width="0dip"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="end"
|
android:layout_gravity="end"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:maxLines="2" />
|
android:maxLines="2" />
|
||||||
|
@ -20,5 +20,4 @@
|
|||||||
|
|
||||||
<!-- Flashing colors -->
|
<!-- Flashing colors -->
|
||||||
<color name="flashing_background_color">@android:color/black</color>
|
<color name="flashing_background_color">@android:color/black</color>
|
||||||
<color name="button_panel_background_color">@android:color/darker_gray</color>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -66,12 +66,12 @@
|
|||||||
<string name="about">About</string>
|
<string name="about">About</string>
|
||||||
<string name="app_developers">Main developers</string>
|
<string name="app_developers">Main developers</string>
|
||||||
<string name="app_developers_"><![CDATA[App created by <a href="https://github.com/topjohnwu">topjohnwu</a> in collaboration with <a href="https://github.com/d8ahazard">Digitalhigh</a> and <a href="https://github.com/dvdandroid">Dvdandroid</a>.]]></string>
|
<string name="app_developers_"><![CDATA[App created by <a href="https://github.com/topjohnwu">topjohnwu</a> in collaboration with <a href="https://github.com/d8ahazard">Digitalhigh</a> and <a href="https://github.com/dvdandroid">Dvdandroid</a>.]]></string>
|
||||||
<string name="app_changelog">App\'s changelog</string>
|
<string name="app_changelog">Changelog</string>
|
||||||
<string name="translators" />
|
<string name="translators" />
|
||||||
<string name="app_version">App\'s version</string>
|
<string name="app_version">Version</string>
|
||||||
<string name="app_source_code">Source code</string>
|
<string name="app_source_code">Source code</string>
|
||||||
<string name="donation">Donation</string>
|
<string name="donation">Donation</string>
|
||||||
<string name="app_translators">App\'s translators</string>
|
<string name="app_translators">Translators</string>
|
||||||
<string name="support_thread">Support thread</string>
|
<string name="support_thread">Support thread</string>
|
||||||
|
|
||||||
<!--Toasts, Dialogs-->
|
<!--Toasts, Dialogs-->
|
||||||
|
Loading…
Reference in New Issue
Block a user