Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4fa7ba91 authored by Gabriele M's avatar Gabriele M
Browse files

Replace refresh dialog with icon animation

Change-Id: I6d2cc649b9fa8883a7256d8ecb62cb56bbf5dd59
parent 4d5e82b8
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@
    <string name="menu_show_changelog">Show changelog</string>
    <string name="menu_changelog_url" translatable="false">https://download.lineageos.org/<xliff:g id="device_name">%1$s</xliff:g>/changes</string>

    <string name="dialog_checking_for_updates">Checking for updates</string>
    <string name="snack_updates_found">New updates found</string>
    <string name="snack_no_updates_found">No new updates found</string>
    <string name="snack_updates_check_failed">The update check failed. Please check your internet connection and try again later.</string>
+32 −18
Original line number Diff line number Diff line
@@ -15,11 +15,9 @@
 */
package org.lineageos.updater;

import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
@@ -42,6 +40,9 @@ import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.TextView;

import org.json.JSONException;
@@ -71,6 +72,9 @@ public class UpdatesActivity extends UpdatesListActivity {

    private UpdatesListAdapter mAdapter;

    private View mRefreshIconView;
    private RotateAnimation mRefreshAnimation;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
@@ -147,6 +151,11 @@ public class UpdatesActivity extends UpdatesListActivity {
            // This can't be collapsed without a touchscreen
            appBar.setExpanded(false);
        }

        mRefreshAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f,
                Animation.RELATIVE_TO_SELF, 0.5f);
        mRefreshAnimation.setInterpolator(new LinearInterpolator());
        mRefreshAnimation.setDuration(1000);
    }

    @Override
@@ -353,12 +362,6 @@ public class UpdatesActivity extends UpdatesListActivity {
        String url = Utils.getServerURL(this);
        Log.d(TAG, "Checking " + url);

        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setTitle(R.string.app_name);
        progressDialog.setMessage(getString(R.string.dialog_checking_for_updates));
        progressDialog.setIndeterminate(true);
        progressDialog.setCancelable(true);

        DownloadClient.DownloadCallback callback = new DownloadClient.DownloadCallback() {
            @Override
            public void onFailure(final boolean cancelled) {
@@ -366,10 +369,10 @@ public class UpdatesActivity extends UpdatesListActivity {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        progressDialog.dismiss();
                        if (!cancelled) {
                            showSnackbar(R.string.snack_updates_check_failed, Snackbar.LENGTH_LONG);
                        }
                        refreshAnimationStop();
                    }
                });
            }
@@ -386,7 +389,7 @@ public class UpdatesActivity extends UpdatesListActivity {
                    public void run() {
                        Log.d(TAG, "List downloaded");
                        processNewJson(jsonFile, jsonFileTmp, manualRefresh);
                        progressDialog.dismiss();
                        refreshAnimationStop();
                    }
                });
            }
@@ -405,14 +408,7 @@ public class UpdatesActivity extends UpdatesListActivity {
            return;
        }

        progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {
                progressDialog.dismiss();
                downloadClient.cancel();
            }
        });
        progressDialog.show();
        refreshAnimationStart();
        downloadClient.start();
    }

@@ -446,4 +442,22 @@ public class UpdatesActivity extends UpdatesListActivity {
    public void showSnackbar(int stringId, int duration) {
        Snackbar.make(findViewById(R.id.main_container), stringId, duration).show();
    }

    private void refreshAnimationStart() {
        if (mRefreshIconView == null) {
            mRefreshIconView = findViewById(R.id.menu_refresh);
        }
        if (mRefreshIconView != null) {
            mRefreshAnimation.setRepeatCount(Animation.INFINITE);
            mRefreshIconView.startAnimation(mRefreshAnimation);
            mRefreshIconView.setEnabled(false);
        }
    }

    private void refreshAnimationStop() {
        if (mRefreshIconView != null) {
            mRefreshAnimation.setRepeatCount(0);
            mRefreshIconView.setEnabled(true);
        }
    }
}