package me.ele.amigo.release; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.text.TextUtils; import me.ele.amigo.Amigo; import me.ele.amigo.AmigoService; import me.ele.amigo.utils.OrientationUtil; public class ApkReleaseActivity extends Activity { static final String LAYOUT_ID = "layout_id"; static final String THEME_ID = "theme_id"; static final String PATCH_CHECKSUM = "patch_checksum"; private int layoutId; private int themeId; private String checksum; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(OrientationUtil.getReleaseActivityOrientation(this)); layoutId = getIntent().getIntExtra(LAYOUT_ID, 0); themeId = getIntent().getIntExtra(THEME_ID, 0); checksum = getIntent().getStringExtra(PATCH_CHECKSUM); if (TextUtils.isEmpty(checksum)) { throw new RuntimeException("patch apk checksum must not be empty"); } if (themeId != 0) { setTheme(themeId); } if (layoutId != 0) { setContentView(layoutId); } AmigoService.startReleaseDex(this.getApplicationContext(), checksum, new Amigo .WorkLaterCallback() { @Override public void onPatchApkReleased(boolean success) { finish(); overridePendingTransition(0, 0); } }); } public static void launch(Context context, String checksum, int layoutId, int themeId) { Intent intent = new Intent(context, ApkReleaseActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(ApkReleaseActivity.LAYOUT_ID, layoutId); intent.putExtra(ApkReleaseActivity.THEME_ID, themeId); intent.putExtra(ApkReleaseActivity.PATCH_CHECKSUM, checksum); context.startActivity(intent); } }