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.BuildConfig;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.network.api.UpdateCheckApi;
import com.stardust.scriptdroid.network.entity.VersionInfo;
import com.stardust.scriptdroid.tool.SimpleObserver;
import com.stardust.scriptdroid.ui.update.UpdateInfoDialogBuilder;
@ -57,23 +58,6 @@ public class VersionService {
.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) {
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
@ -96,10 +80,6 @@ public class VersionService {
return mDeprecated;
}
public VersionInfo getVersionInfo() {
return mVersionInfo;
}
public String getCurrentVersionIssues() {
if (mVersionInfo == 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;
@ -11,7 +11,7 @@ import retrofit2.http.GET;
public interface UpdateCheckApi {
@GET("/hyb1996/NoRootScriptDroid/master/version.json")
@GET("/hyb1996/NoRootScriptDroid/new_ui/version.json")
Observable<VersionInfo> checkForUpdates();
}

View File

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

View File

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

View File

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

View File

@ -14,11 +14,9 @@ import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.external.floatingwindow.HoverMenuManger;
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.entity.VersionInfo;
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.update.UpdateInfoDialogBuilder;
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.WifiTool;
import com.stardust.util.IntentUtil;
import com.stardust.util.UnderuseExecutors;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
@ -219,8 +216,14 @@ public class DrawerFragment extends android.support.v4.app.Fragment {
@Override
public void onNext(@io.reactivex.annotations.NonNull VersionInfo versionInfo) {
new UpdateInfoDialogBuilder(getActivity(), versionInfo)
.show();
if (getActivity() == null)
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);
}

View File

@ -15,6 +15,7 @@ import com.stardust.scriptdroid.ui.BaseActivity;
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.update.UpdateCheckDialog;
import com.stardust.theme.preference.ThemeColorPreferenceFragment;
import com.stardust.util.IntentUtil;
import com.stardust.util.MapEntries;
@ -130,7 +131,8 @@ public class SettingsActivity extends BaseActivity {
.entry(getString(R.string.text_check_for_updates), new Runnable() {
@Override
public void run() {
VersionService.getInstance().checkForUpdatesAndShow(getActivity());
new UpdateCheckDialog(getActivity())
.show();
}
})
.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
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
if (which == DialogAction.POSITIVE) {
VersionService.getInstance().checkForUpdatesAndShow(mActivity);
new UpdateCheckDialog(mActivity)
.show();
} else {
mActivity.finish();
}

View File

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