i don't know what i did

This commit is contained in:
hyb1996
2017-09-20 14:24:20 +08:00
parent 43b7132280
commit 23cd6ba6cd
11 changed files with 106 additions and 58 deletions

View File

@@ -1,8 +0,0 @@
package com.stardust.scriptdroid.network;
/**
* Created by Stardust on 2017/9/20.
*/
public class Apis {
}

View File

@@ -10,6 +10,7 @@ import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import com.stardust.scriptdroid.App; import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.BuildConfig; import com.stardust.scriptdroid.BuildConfig;
import com.stardust.scriptdroid.R; import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.network.api.UpdateCheckApi;
import com.stardust.scriptdroid.network.entity.VersionInfo; import com.stardust.scriptdroid.network.entity.VersionInfo;
import com.stardust.scriptdroid.tool.SimpleObserver; import com.stardust.scriptdroid.tool.SimpleObserver;
import com.stardust.scriptdroid.ui.update.UpdateInfoDialogBuilder; import com.stardust.scriptdroid.ui.update.UpdateInfoDialogBuilder;
@@ -57,23 +58,6 @@ public class VersionService {
.subscribeOn(Schedulers.io()); .subscribeOn(Schedulers.io());
} }
public void checkForUpdatesAndShow(final Context context) {
checkForUpdates().observeOn(AndroidSchedulers.mainThread())
.subscribe(new SimpleObserver<VersionInfo>() {
@Override
public void onNext(@io.reactivex.annotations.NonNull VersionInfo versionInfo) {
new UpdateInfoDialogBuilder(context, versionInfo)
.show();
}
@Override
public void onError(@io.reactivex.annotations.NonNull Throwable e) {
Toast.makeText(App.getApp(), R.string.text_check_update_error, Toast.LENGTH_SHORT).show();
}
});
}
private void readDeprecatedFromPref(Context context) { private void readDeprecatedFromPref(Context context) {
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
@@ -96,10 +80,6 @@ public class VersionService {
return mDeprecated; return mDeprecated;
} }
public VersionInfo getVersionInfo() {
return mVersionInfo;
}
public String getCurrentVersionIssues() { public String getCurrentVersionIssues() {
if (mVersionInfo == null) if (mVersionInfo == null)
return null; return null;

View File

@@ -1,4 +1,4 @@
package com.stardust.scriptdroid.network; package com.stardust.scriptdroid.network.api;
import com.stardust.scriptdroid.network.entity.VersionInfo; import com.stardust.scriptdroid.network.entity.VersionInfo;
@@ -11,7 +11,7 @@ import retrofit2.http.GET;
public interface UpdateCheckApi { public interface UpdateCheckApi {
@GET("/hyb1996/NoRootScriptDroid/master/version.json") @GET("/hyb1996/NoRootScriptDroid/new_ui/version.json")
Observable<VersionInfo> checkForUpdates(); Observable<VersionInfo> checkForUpdates();
} }

View File

@@ -3,6 +3,8 @@ package com.stardust.scriptdroid.network.entity;
import android.text.TextUtils; import android.text.TextUtils;
import com.stardust.scriptdroid.BuildConfig;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List; import java.util.List;
@@ -35,6 +37,10 @@ public class VersionInfo {
return null; return null;
} }
public boolean isNewer() {
return versionCode > BuildConfig.VERSION_CODE;
}
@Override @Override
public String toString() { public String toString() {
return "UpdateInfo{" + return "UpdateInfo{" +
@@ -48,6 +54,7 @@ public class VersionInfo {
'}'; '}';
} }
public static class OldVersion extends JSONObject { public static class OldVersion extends JSONObject {
public int versionCode; public int versionCode;

View File

@@ -33,14 +33,6 @@ public class CommunityFragment extends ViewPagerFragment implements BackPressedH
super(0); super(0);
} }
@Override
public void onAttach(Context context) {
super.onAttach(context);
((BackPressedHandler.HostActivity) getActivity())
.getBackPressedObserver()
.registerHandler(this);
}
@AfterViews @AfterViews
void setUpViews() { void setUpViews() {
mWebView = mEWebView.getWebView(); mWebView = mEWebView.getWebView();
@@ -48,8 +40,16 @@ public class CommunityFragment extends ViewPagerFragment implements BackPressedH
} }
@Override @Override
public void onDetach() { public void onResume() {
super.onDetach(); super.onResume();
((BackPressedHandler.HostActivity) getActivity())
.getBackPressedObserver()
.registerHandlerAtFront(this);
}
@Override
public void onPause() {
super.onPause();
((BackPressedHandler.HostActivity) getActivity()) ((BackPressedHandler.HostActivity) getActivity())
.getBackPressedObserver() .getBackPressedObserver()
.unregisterHandler(this); .unregisterHandler(this);

View File

@@ -32,23 +32,24 @@ public class OnlineDocsFragment extends ViewPagerFragment implements BackPressed
super(ROTATION_GONE); super(ROTATION_GONE);
} }
@Override
public void onAttach(Context context) {
super.onAttach(context);
((BackPressedHandler.HostActivity) getActivity())
.getBackPressedObserver()
.registerHandler(this);
}
@AfterViews @AfterViews
void setUpViews() { void setUpViews() {
mWebView = mEWebView.getWebView(); mWebView = mEWebView.getWebView();
mWebView.loadUrl("https://hyb1996.github.io/AutoJs-Docs/"); mWebView.loadUrl("https://hyb1996.github.io/AutoJs-Docs/");
} }
@Override @Override
public void onDetach() { public void onResume() {
super.onDetach(); super.onResume();
((BackPressedHandler.HostActivity) getActivity())
.getBackPressedObserver()
.registerHandlerAtFront(this);
}
@Override
public void onPause() {
super.onPause();
((BackPressedHandler.HostActivity) getActivity()) ((BackPressedHandler.HostActivity) getActivity())
.getBackPressedObserver() .getBackPressedObserver()
.unregisterHandler(this); .unregisterHandler(this);

View File

@@ -14,11 +14,9 @@ import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.R; import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.external.floatingwindow.HoverMenuManger; import com.stardust.scriptdroid.external.floatingwindow.HoverMenuManger;
import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService; import com.stardust.scriptdroid.external.floatingwindow.menu.HoverMenuService;
import com.stardust.scriptdroid.network.UpdateCheckApi;
import com.stardust.scriptdroid.network.VersionService; import com.stardust.scriptdroid.network.VersionService;
import com.stardust.scriptdroid.network.entity.VersionInfo; import com.stardust.scriptdroid.network.entity.VersionInfo;
import com.stardust.scriptdroid.tool.SimpleObserver; import com.stardust.scriptdroid.tool.SimpleObserver;
import com.stardust.scriptdroid.ui.common.ProgressDialog;
import com.stardust.scriptdroid.ui.settings.SettingsActivity; import com.stardust.scriptdroid.ui.settings.SettingsActivity;
import com.stardust.scriptdroid.ui.update.UpdateInfoDialogBuilder; import com.stardust.scriptdroid.ui.update.UpdateInfoDialogBuilder;
import com.stardust.theme.ThemeColorManager; import com.stardust.theme.ThemeColorManager;
@@ -27,7 +25,6 @@ import com.stardust.scriptdroid.sublime.SublimePluginService;
import com.stardust.scriptdroid.tool.AccessibilityServiceTool; import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.tool.WifiTool; import com.stardust.scriptdroid.tool.WifiTool;
import com.stardust.util.IntentUtil; import com.stardust.util.IntentUtil;
import com.stardust.util.UnderuseExecutors;
import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click; import org.androidannotations.annotations.Click;
@@ -219,8 +216,14 @@ public class DrawerFragment extends android.support.v4.app.Fragment {
@Override @Override
public void onNext(@io.reactivex.annotations.NonNull VersionInfo versionInfo) { public void onNext(@io.reactivex.annotations.NonNull VersionInfo versionInfo) {
new UpdateInfoDialogBuilder(getActivity(), versionInfo) if (getActivity() == null)
.show(); return;
if (versionInfo.isNewer()) {
new UpdateInfoDialogBuilder(getActivity(), versionInfo)
.show();
} else {
Toast.makeText(App.getApp(), R.string.text_is_latest_version, Toast.LENGTH_SHORT).show();
}
mCheckForUpdatesItem.setProgress(false); mCheckForUpdatesItem.setProgress(false);
} }

View File

@@ -15,6 +15,7 @@ import com.stardust.scriptdroid.ui.BaseActivity;
import com.stardust.scriptdroid.ui.error.IssueReporterActivity; import com.stardust.scriptdroid.ui.error.IssueReporterActivity;
import com.stardust.scriptdroid.ui.splash.SplashActivity; import com.stardust.scriptdroid.ui.splash.SplashActivity;
import com.stardust.scriptdroid.ui.splash.SplashActivity_; import com.stardust.scriptdroid.ui.splash.SplashActivity_;
import com.stardust.scriptdroid.ui.update.UpdateCheckDialog;
import com.stardust.theme.preference.ThemeColorPreferenceFragment; import com.stardust.theme.preference.ThemeColorPreferenceFragment;
import com.stardust.util.IntentUtil; import com.stardust.util.IntentUtil;
import com.stardust.util.MapEntries; import com.stardust.util.MapEntries;
@@ -130,7 +131,8 @@ public class SettingsActivity extends BaseActivity {
.entry(getString(R.string.text_check_for_updates), new Runnable() { .entry(getString(R.string.text_check_for_updates), new Runnable() {
@Override @Override
public void run() { public void run() {
VersionService.getInstance().checkForUpdatesAndShow(getActivity()); new UpdateCheckDialog(getActivity())
.show();
} }
}) })
.entry(getString(R.string.text_issue_report), new Runnable() { .entry(getString(R.string.text_issue_report), new Runnable() {

View File

@@ -0,0 +1,57 @@
package com.stardust.scriptdroid.ui.update;
import android.content.Context;
import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.network.VersionService;
import com.stardust.scriptdroid.network.entity.VersionInfo;
import com.stardust.scriptdroid.tool.SimpleObserver;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
/**
* Created by Stardust on 2017/9/20.
*/
public class UpdateCheckDialog {
private MaterialDialog mProgress;
private Context mContext;
public UpdateCheckDialog(Context context) {
mProgress = new MaterialDialog.Builder(context)
.progress(true, 0)
.content(R.string.text_checking_update)
.build();
}
public void show() {
mProgress.show();
VersionService.getInstance()
.checkForUpdates()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SimpleObserver<VersionInfo>() {
@Override
public void onNext(@NonNull VersionInfo versionInfo) {
mProgress.dismiss();
if (versionInfo.isNewer()) {
new UpdateInfoDialogBuilder(mContext, versionInfo)
.show();
} else {
Toast.makeText(App.getApp(), R.string.text_is_latest_version, Toast.LENGTH_SHORT).show();
}
}
@Override
public void onError(@NonNull Throwable e) {
e.printStackTrace();
mProgress.dismiss();
Toast.makeText(App.getApp(), R.string.text_check_update_error, Toast.LENGTH_SHORT).show();
}
});
}
}

View File

@@ -80,7 +80,8 @@ public class VersionGuard {
@Override @Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
if (which == DialogAction.POSITIVE) { if (which == DialogAction.POSITIVE) {
VersionService.getInstance().checkForUpdatesAndShow(mActivity); new UpdateCheckDialog(mActivity)
.show();
} else { } else {
mActivity.finish(); mActivity.finish();
} }

View File

@@ -1,6 +1,7 @@
package com.stardust.util; package com.stardust.util;
import android.app.Activity; import android.app.Activity;
import android.os.Handler;
import android.widget.Toast; import android.widget.Toast;
@@ -37,6 +38,10 @@ public interface BackPressedHandler {
mBackPressedHandlers.add(handler); mBackPressedHandlers.add(handler);
} }
public void registerHandlerAtFront(BackPressedHandler handler) {
mBackPressedHandlers.add(0, handler);
}
public void unregisterHandler(BackPressedHandler handler) { public void unregisterHandler(BackPressedHandler handler) {
mBackPressedHandlers.remove(handler); mBackPressedHandlers.remove(handler);
} }