提交 0f50d916 编写于 作者: Utopia&&for free's avatar Utopia&&for free

Update demo.java

上级 c373a210
/* /*
* Copyright (c) Huawei Technologies Co., Ltd. 2012-2019. All righ * Copyright (c) Huawei Technologies Co., Ltd. 2012-2019. All righ
*/ */
package com.huawei.android.dynamicfeaturesplit; 6 package com.huawei.android.dynamicfeaturesplit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
...@@ -28,308 +28,311 @@ import com.huawei.hms.feature.tasks.listener.OnFeatureCompleteLis ...@@ -28,308 +28,311 @@ import com.huawei.hms.feature.tasks.listener.OnFeatureCompleteLis
import com.huawei.hms.feature.tasks.listener.OnFeatureFailureList import com.huawei.hms.feature.tasks.listener.OnFeatureFailureList
import com.huawei.hms.feature.tasks.listener.OnFeatureSuccessList import com.huawei.hms.feature.tasks.listener.OnFeatureSuccessList
/** /**
* Sample entry. * Sample entry.
*/ */
public class SampleEntry extends Activity { public class SampleEntry extends Activity {
private ProgressBar progressBar; private ProgressBar progressBar;
private static final String TAG = SampleEntry.class.getSimple private static final String TAG = SampleEntry.class.getSimple
private FeatureInstallManager mFeatureInstallManager; private FeatureInstallManager mFeatureInstallManager;
private int sessionId = 10086; private int sessionId = 10086;
// 安装状态监听 // 安装状态监听
private InstallStateListener mStateUpdateListener = new Insta private InstallStateListener mStateUpdateListener = new Insta
@Override @Override
public void onStateUpdate(InstallState state) { public void onStateUpdate(InstallState state) {
Log.d(TAG, "install session state " + state); Log.d(TAG, "install session state " + state);
if (state.status() == FeatureInstallSessionStatus.REQ if (state.status() == FeatureInstallSessionStatus.REQ
try { try {
mFeatureInstallManager.triggerUserConfirm(sta
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
return;
}
if (state.status() == FeatureInstallSessionStatus.REQ)
try {
mFeatureInstallManager.triggerUserConfirm(sta mFeatureInstallManager.triggerUserConfirm(sta
} catch (IntentSender.SendIntentException e) { } catch (IntentSender.SendIntentException e) {
e.printStackTrace(); e.printStackTrace();
} }
return; } return;
if (state.status() == FeatureInstallSessionStatus.REQ }
try {
mFeatureInstallManager.triggerUserConfirm(sta
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
return;
if (state.status() == FeatureInstallSessionStatus.INS)
Log.i(TAG, "installed success ,can use new featur
makeToast("installed success , can test new featu
return;
}
if (state.status() == FeatureInstallSessionStatus.UNK
Log.e(TAG, "installed in unknown status");
makeToast("installed in unknown status ");
return;
}
if (state.status() == FeatureInstallSessionStatus.DOW
long process = state.bytesDownloaded() * 100 / st
Log.d(TAG, "downloading percentage: " + process)
makeToast("downloading percentage: " + process);
return;
}
if (state.status() == FeatureInstallSessionStatus.FAI
Log.e(TAG, "installed failed, errorcode : " + sta
makeToast("installed failed, errorcode : " + stat
return;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = findViewById(R.id.progress_bar);
mFeatureInstallManager = FeatureInstallManagerFactory.cr
}
}
} @Override
if (state.status() == FeatureInstallSessionStatus.INS protected void onResume() {
Log.i(TAG, "installed success ,can use new featur super.onResume();
makeToast("installed success , can test new featu if (mFeatureInstallManager != null) {
return; mFeatureInstallManager.registerInstallListener(mStat
} }
if (state.status() == FeatureInstallSessionStatus.UNK @Override
Log.e(TAG, "installed in unknown status"); protected void onPause() {
makeToast("installed in unknown status "); super.onPause();
return; if (mFeatureInstallManager != null) {
} mFeatureInstallManager.unregisterInstallListener(mSt
if (state.status() == FeatureInstallSessionStatus.DOW }
long process = state.bytesDownloaded() * 100 / st
Log.d(TAG, "downloading percentage: " + process)
makeToast("downloading percentage: " + process);
return;
}
if (state.status() == FeatureInstallSessionStatus.FAI
Log.e(TAG, "installed failed, errorcode : " + sta
makeToast("installed failed, errorcode : " + stat
return;
}
} };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = findViewById(R.id.progress_bar);
mFeatureInstallManager = FeatureInstallManagerFactory.cr
}
}
@Override }
protected void onResume() {
super.onResume();
if (mFeatureInstallManager != null) {
mFeatureInstallManager.registerInstallListener(mStat
}
@Override
protected void onPause() {
super.onPause();
if (mFeatureInstallManager != null) {
mFeatureInstallManager.unregisterInstallListener(mSt
} }
/** /**
* 安装动态特性 * 安装动态特性
*/ */
public void installFeature(View view) { public void installFeature(View view) {
if (mFeatureInstallManager == null) { if (mFeatureInstallManager == null) {
return; } return; }
// start install // start install
FeatureInstallRequest request = FeatureInstallRequest.ne FeatureInstallRequest request = FeatureInstallRequest.ne
.addModule("SplitSampleFeature01") .addModule("SplitSampleFeature01")
.build(); .build();
// 添加安装监听 // 添加安装监听
final FeatureTask<Integer> task = mFeatureInstallManager final FeatureTask<Integer> task = mFeatureInstallManager
task.addOnListener(new OnFeatureSuccessListener<Integer> task.addOnListener(new OnFeatureSuccessListener<Integer>
@Override @Override
public void onSuccess(Integer integer) { public void onSuccess(Integer integer) {
Log.d(TAG, "load feature onSuccess.session id:" Log.d(TAG, "load feature onSuccess.session id:"
} }
}); });
task.addOnListener(new OnFeatureFailureListener<Integer> task.addOnListener(new OnFeatureFailureListener<Integer>
@Override @Override
public void onFailure(Exception exception) { public void onFailure(Exception exception) {
if (exception instanceof FeatureInstallException if (exception instanceof FeatureInstallException
int errorCode = ((FeatureInstallException) e int errorCode = ((FeatureInstallException) e
Log.d(TAG, "load feature onFailure.errorCode Log.d(TAG, "load feature onFailure.errorCode
} else { } else {
exception.printStackTrace(); exception.printStackTrace();
} } } }
}); });
task.addOnListener(new OnFeatureCompleteListener<Integer task.addOnListener(new OnFeatureCompleteListener<Integer
@Override @Override
public void onComplete(FeatureTask<Integer> featureT public void onComplete(FeatureTask<Integer> featureT
if (featureTask.isComplete()) { if (featureTask.isComplete()) {
Log.d(TAG, "complete to start install."); Log.d(TAG, "complete to start install.");
if (featureTask.isSuccessful()) { if (featureTask.isSuccessful()) {
Integer result = featureTask.getResult() Integer result = featureTask.getResult()
sessionId = result; sessionId = result;
Log.d(TAG, "succeed to start install. se Log.d(TAG, "succeed to start install. se
} else { } else {
Log.d(TAG, "fail to start install."); Log.d(TAG, "fail to start install.");
Exception exception = featureTask.getExc Exception exception = featureTask.getExc
exception.printStackTrace(); exception.printStackTrace();
} } } }
} }); } });
Log.d(TAG, "start install func end"); Log.d(TAG, "start install func end");
} }
/** /**
* 打开动态特性⻚页⾯面 * 打开动态特性⻚页⾯面
*/ */
public void startFeature01(View view) { public void startFeature01(View view) {
// test getInstallModules // test getInstallModules
Set<String> moduleNames = mFeatureInstallManager.getAllI Set<String> moduleNames = mFeatureInstallManager.getAllI
Log.d(TAG, "getInstallModules : " + moduleNames); Log.d(TAG, "getInstallModules : " + moduleNames);
if (moduleNames != null && moduleNames.contains("SplitSa
try {
startActivity(new Intent(this, Class.forName(
"com.huawei.android.dynamicfeaturesplit.
} catch (Exception e) {
Log.w(TAG, "", e);
} }
}
if (moduleNames != null && moduleNames.contains("SplitSa
try {
startActivity(new Intent(this, Class.forName(
"com.huawei.android.dynamicfeaturesplit.
} catch (Exception e) {
Log.w(TAG, "", e);
} }
}
/** /**
* 中断安装特性 * 中断安装特性
*/ */
public void abortInstallFeature(View view) { public void abortInstallFeature(View view) {
Log.d(TAG, "begin abort_install : " + sessionId); Log.d(TAG, "begin abort_install : " + sessionId);
FeatureTask<Void> task = mFeatureInstallManager.abortIns FeatureTask<Void> task = mFeatureInstallManager.abortIns
task.addOnListener(new OnFeatureCompleteListener<Void>() task.addOnListener(new OnFeatureCompleteListener<Void>()
@Override @Override
public void onComplete(FeatureTask<Void> featureTask public void onComplete(FeatureTask<Void> featureTask
if (featureTask.isComplete()) { if (featureTask.isComplete()) {
Log.d(TAG, "complete to abort_install."); Log.d(TAG, "complete to abort_install.");
if (featureTask.isSuccessful()) { if (featureTask.isSuccessful()) {
Log.d(TAG, "succeed to abort_install."); Log.d(TAG, "succeed to abort_install.");
} else { } else {
Log.d(TAG, "fail to abort_install."); Log.d(TAG, "fail to abort_install.");
Exception exception = featureTask.getExc Exception exception = featureTask.getExc
exception.printStackTrace(); exception.printStackTrace();
} } } }
} }); } });
} }
/** /**
* get install task state * get install task state
* *
* @param view the view * @param view the view
*/ */
public void getInstallState(View view) { public void getInstallState(View view) {
Log.d(TAG, "begin to get session state for: " + sessionI Log.d(TAG, "begin to get session state for: " + sessionI
FeatureTask<InstallState> task = mFeatureInstallManager. FeatureTask<InstallState> task = mFeatureInstallManager.
task.addOnListener(new OnFeatureCompleteListener<Install task.addOnListener(new OnFeatureCompleteListener<Install
@Override @Override
public void onComplete(FeatureTask<InstallState> fea public void onComplete(FeatureTask<InstallState> fea
if (featureTask.isComplete()) { if (featureTask.isComplete()) {
Log.d(TAG, "complete to get session state.") Log.d(TAG, "complete to get session state.")
if (featureTask.isSuccessful()) { if (featureTask.isSuccessful()) {
InstallState state = featureTask.getResu InstallState state = featureTask.getResu
Log.d(TAG, "succeed to get session state Log.d(TAG, "succeed to get session state
Log.d(TAG, state.toString()); Log.d(TAG, state.toString());
} else { } else {
Log.e(TAG, "failed to get session state. Log.e(TAG, "failed to get session state.
Exception exception = featureTask.getExc Exception exception = featureTask.getExc
exception.printStackTrace(); exception.printStackTrace();
} } } }
} }); } });
} }
/** /**
* get states of all install tasks * get states of all install tasks
* *
* @param view the view * @param view the view
*/ */
public void getAllInstallStates(View view) { public void getAllInstallStates(View view) {
Log.d(TAG, "begin to get all session states."); Log.d(TAG, "begin to get all session states.");
FeatureTask<List<InstallState>> task = mFeatureInstallMa FeatureTask<List<InstallState>> task = mFeatureInstallMa
task.addOnListener(new OnFeatureCompleteListener<List<In task.addOnListener(new OnFeatureCompleteListener<List<In
@Override @Override
public void onComplete(FeatureTask<List<InstallState public void onComplete(FeatureTask<List<InstallState
Log.d(TAG, "complete to get session states."); Log.d(TAG, "complete to get session states.");
if (featureTask.isSuccessful()) { if (featureTask.isSuccessful()) {
Log.d(TAG, "succeed to get session states.") Log.d(TAG, "succeed to get session states.")
List<InstallState> stateList = featureTask.g List<InstallState> stateList = featureTask.g
for (InstallState state : stateList) { for (InstallState state : stateList) {
Log.d(TAG, state.toString()); Log.d(TAG, state.toString());
} }
} else { } else {
Log.e(TAG, "fail to get session states."); Log.e(TAG, "fail to get session states.");
Exception exception = featureTask.getExcepti Exception exception = featureTask.getExcepti
exception.printStackTrace(); exception.printStackTrace();
} } } }
}); } }); }
/** /**
* 延迟安装动态特性 * 延迟安装动态特性
*/ */
public void delayedInstallFeature(View view) { public void delayedInstallFeature(View view) {
List<String> features = new ArrayList<>(); List<String> features = new ArrayList<>();
features.add("SplitSampleFeature01"); features.add("SplitSampleFeature01");
FeatureTask<Void> task = mFeatureInstallManager.delayedI FeatureTask<Void> task = mFeatureInstallManager.delayedI
task.addOnListener(new OnFeatureCompleteListener<Void>() task.addOnListener(new OnFeatureCompleteListener<Void>()
@Override @Override
public void onComplete(FeatureTask<Void> featureTask public void onComplete(FeatureTask<Void> featureTask
if (featureTask.isComplete()) { if (featureTask.isComplete()) {
Log.d(TAG, "complete to delayed_Install"); Log.d(TAG, "complete to delayed_Install");
if (featureTask.isSuccessful()) { if (featureTask.isSuccessful()) {
Log.d(TAG, "succeed to delayed_install") Log.d(TAG, "succeed to delayed_install")
} else { } else {
Log.d(TAG, "fail to delayed_install."); Log.d(TAG, "fail to delayed_install.");
Exception exception = featureTask.getExc Exception exception = featureTask.getExc
exception.printStackTrace(); exception.printStackTrace();
} }
} }
}); }
} }
}); }
/** /**
* 延迟卸载特性 * 延迟卸载特性
*/ */
public void delayedUninstallFeature(View view) { public void delayedUninstallFeature(View view) {
List<String> features = new ArrayList<>(); List<String> features = new ArrayList<>();
features.add("SplitSampleFeature01"); features.add("SplitSampleFeature01");
FeatureTask<Void> task = mFeatureInstallManager.delayedU FeatureTask<Void> task = mFeatureInstallManager.delayedU
task.addOnListener(new OnFeatureCompleteListener<Void>() task.addOnListener(new OnFeatureCompleteListener<Void>()
@Override @Override
public void onComplete(FeatureTask<Void> featureTask public void onComplete(FeatureTask<Void> featureTask
if (featureTask.isComplete()) { if (featureTask.isComplete()) {
Log.d(TAG, "complete to delayed_uninstall"); Log.d(TAG, "complete to delayed_uninstall");
if (featureTask.isSuccessful()) { if (featureTask.isSuccessful()) {
Log.d(TAG, "succeed to delayed_uninstall Log.d(TAG, "succeed to delayed_uninstall
} else { } else {
Log.d(TAG, "fail to delayed_uninstall.") Log.d(TAG, "fail to delayed_uninstall.")
Exception exception = featureTask.getExc Exception exception = featureTask.getExc
exception.printStackTrace(); exception.printStackTrace();
} } } }
} }); } });
} }
/** /**
* install languages * install languages
* *
* @param view the view * @param view the view
*/ */
public void loadLanguage(View view) { public void loadLanguage(View view) {
if (mFeatureInstallManager == null) { if (mFeatureInstallManager == null) {
return; } return; }
// start install // start install
Set<String> languages = new HashSet<>(); Set<String> languages = new HashSet<>();
languages.add("fr-FR"); languages.add("fr-FR");
FeatureInstallRequest.Builder builder = FeatureInstallRe FeatureInstallRequest.Builder builder = FeatureInstallRe
for (String lang : languages) { for (String lang : languages) {
builder.addLanguage(Locale.forLanguageTag(lang)); builder.addLanguage(Locale.forLanguageTag(lang));
} }
FeatureInstallRequest request = builder.build(); FeatureInstallRequest request = builder.build();
FeatureTask<Integer> task = mFeatureInstallManager.insta FeatureTask<Integer> task = mFeatureInstallManager.insta
task.addOnListener(new OnFeatureSuccessListener<Integer> task.addOnListener(new OnFeatureSuccessListener<Integer>
@Override @Override
public void onSuccess(Integer result) { public void onSuccess(Integer result) {
Log.d(TAG, "onSuccess callback result " + result Log.d(TAG, "onSuccess callback result " + result
} }); } });
task.addOnListener(new OnFeatureFailureListener<Integer> task.addOnListener(new OnFeatureFailureListener<Integer>
@Override @Override
public void onFailure(Exception exception) { public void onFailure(Exception exception) {
if (exception instanceof FeatureInstallException if (exception instanceof FeatureInstallException
Log.d(TAG, "onFailure callback " Log.d(TAG, "onFailure callback "
+ ((FeatureInstallException) exception + ((FeatureInstallException) exception
} else { } else {
Log.d(TAG, "onFailure callback ", exception) Log.d(TAG, "onFailure callback ", exception)
} } } }
}); });
task.addOnListener(new OnFeatureCompleteListener<Integer task.addOnListener(new OnFeatureCompleteListener<Integer
@Override @Override
public void onComplete(FeatureTask<Integer> task) { public void onComplete(FeatureTask<Integer> task) {
Log.d(TAG, "onComplete callback"); Log.d(TAG, "onComplete callback");
} }
}); });
{ {
private void makeToast(String msg) { private void makeToast(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
} }
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册