Skip to content

Commit

Permalink
android app add model select
Browse files Browse the repository at this point in the history
  • Loading branch information
wangzhaode committed Dec 25, 2023
1 parent f49c3fe commit 312ce0c
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 2 deletions.
47 changes: 45 additions & 2 deletions android/app/src/main/java/com/mnn/llm/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,18 @@
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {
Expand All @@ -27,9 +32,11 @@ public class MainActivity extends AppCompatActivity {
private ProgressBar mProcessBar;
private TextView mProcessName;
private TextView mProcessPercent;
private Spinner mSpinnerModels;
// resource files
private String mSearchPath = "/data/local/tmp/mnn-llm/";
private String mModelName = "qwen-1.8b-int4";
private String mModelDir = "/data/local/tmp/chat/" + mModelName; // default dir
private String mModelDir = mSearchPath + mModelName; // default dir
private boolean mModelReady = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -42,8 +49,24 @@ protected void onCreate(Bundle savedInstanceState) {
mProcessBar = (ProgressBar)findViewById(R.id.process_bar);
mProcessName = (TextView)findViewById(R.id.process_name);
mProcessPercent = (TextView)findViewById(R.id.process_percent);
// using assert file
mSpinnerModels = (Spinner) findViewById(R.id.spinner_models);
// default using assert file
mModelDir = this.getCacheDir() + "/" + mModelName;
populateFoldersSpinner();
mSpinnerModels.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (position > 0) {
mModelName = (String) parent.getItemAtPosition(position);
mModelInfo.setText("选择模型:" + mModelName);
mModelInfo.setVisibility(View.VISIBLE);
mModelDir = mSearchPath + mModelName;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
mProcessHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Expand Down Expand Up @@ -107,6 +130,26 @@ public boolean checkModelsReady() {
return true;
}

private ArrayList<String> getFoldersList(String path) {
File directory = new File(path);
File[] files = directory.listFiles();
ArrayList<String> foldersList = new ArrayList<>();

if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
foldersList.add(file.getName());
}
}
}
return foldersList;
}
private void populateFoldersSpinner() {
ArrayList<String> folders = getFoldersList("/data/local/tmp/mnn-llm");
folders.add(0, getString(R.string.spinner_prompt));
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, folders);
mSpinnerModels.setAdapter(adapter);
}
public void loadModel(View view) {
onCheckModels();
if (!mModelReady) {
Expand Down
8 changes: 8 additions & 0 deletions android/app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@
android:layout_alignParentBottom="true"
android:orientation="vertical">

<Spinner
android:id="@+id/spinner_models"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="10pt"
android:prompt="@string/spinner_prompt"
android:spinnerMode="dropdown"/>
<TextView
android:id="@+id/model_info"
android:layout_width="wrap_content"
Expand Down
1 change: 1 addition & 0 deletions android/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@
<string name="navigation_drawer_close">Close navigation drawer</string>
<string name="action_settings">Settings</string>
<string name="main_describe">mnn-llm</string>
<string name="spinner_prompt">选择模型文件夹</string>
</resources>

0 comments on commit 312ce0c

Please sign in to comment.