~singpolyma/cheogram-android

67646c662654c8ecbff512c516df72fa02dcbe98 — Stephen Paul Weber 1 year, 9 months ago f07f871
Default sticker download offer on first start
1 files changed, 38 insertions(+), 6 deletions(-)

M src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java
M src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java => src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java +38 -6
@@ 57,8 57,11 @@ import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;

import com.cheogram.android.DownloadDefaultStickers;

import org.openintents.openpgp.util.OpenPgpApi;

import java.util.Arrays;


@@ 118,6 121,7 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
    public static final int REQUEST_PLAY_PAUSE = 0x5432;
    public static final int REQUEST_MICROPHONE = 0x5432f;
    public static final int DIALLER_INTEGRATION = 0x5432ff;
    public static final int REQUEST_DOWNLOAD_STICKERS = 0xbf8702;


    //secondary fragment (when holding the conversation, must be initialized before refreshing the overview fragment


@@ 217,12 221,10 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
        }
        final Fragment fragment = getFragmentManager().findFragmentById(R.id.main_fragment);
        if (fragment instanceof ConversationsOverviewFragment) {
            if (ExceptionHelper.checkForCrash(this)) {
                return;
            }
            if (!offerToSetupDiallerIntegration()) {
                openBatteryOptimizationDialogIfNeeded();
            }
            if (ExceptionHelper.checkForCrash(this)) return;
            if (offerToSetupDiallerIntegration()) return;
            if (offerToDownloadStickers()) return;
            openBatteryOptimizationDialogIfNeeded();
        }
    }



@@ 259,6 261,26 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
        }
    }

    private boolean offerToDownloadStickers() {
        int offered = getPreferences().getInt("default_stickers_offered", 0);
        if (offered > 0) return false;
        getPreferences().edit().putInt("default_stickers_offered", 1).apply();

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Download Stickers?");
        builder.setMessage("Would you like to download some default sticker packs?");
        builder.setPositiveButton(R.string.yes, (dialog, which) -> {
            if (hasStoragePermission(REQUEST_DOWNLOAD_STICKERS)) {
                downloadStickers();
            }
        });
        builder.setNegativeButton(R.string.no, (dialog, which) -> { });
        final AlertDialog dialog = builder.create();
        dialog.setCanceledOnTouchOutside(false);
        dialog.show();
        return true;
    }

    private boolean offerToSetupDiallerIntegration() {
        if (mRequestCode == DIALLER_INTEGRATION) {
            mRequestCode = -1;


@@ 353,11 375,21 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
                            "com.android.server.telecom.settings.EnableAccountPreferenceActivity"));
                        startActivityForResult(intent, DIALLER_INTEGRATION);
                        break;
                    case REQUEST_DOWNLOAD_STICKERS:
                        downloadStickers();
                        break;
                }
            }
        }
    }

    private void downloadStickers() {
        Intent intent = new Intent(this, DownloadDefaultStickers.class);
        ContextCompat.startForegroundService(this, intent);
        displayToast("Sticker download started");
        showDialogsIfMainIsOverview();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, final Intent data) {
        super.onActivityResult(requestCode, resultCode, data);