1 package org.easyrpg.player.settings; 2 3 import android.os.Bundle; 4 import androidx.appcompat.app.AppCompatActivity; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 import android.widget.Button; 8 import android.widget.ImageButton; 9 import android.widget.LinearLayout; 10 import android.widget.RelativeLayout; 11 import android.widget.TextView; 12 13 import org.easyrpg.player.DirectoryChooser; 14 import org.easyrpg.player.R; 15 16 public class SettingsGamesFoldersActivity extends AppCompatActivity implements View.OnClickListener { 17 private LinearLayout gamesFoldersListLayout; 18 private Button addGameFolderButton; 19 20 @Override onCreate(Bundle savedInstanceState)21 public void onCreate(Bundle savedInstanceState) { 22 super.onCreate(savedInstanceState); 23 this.setContentView(R.layout.activity_settings_games_folders); 24 25 SettingsManager.init(getApplicationContext()); 26 27 // Setting UI components 28 gamesFoldersListLayout = (LinearLayout) findViewById(R.id.games_folders_list); 29 updateGameFoldersList(); 30 addGameFolderButton = (Button) findViewById(R.id.settings_add_game_folder_button); 31 addGameFolderButton.setOnClickListener(this); 32 } 33 34 @Override onClick(View v)35 public void onClick(View v) { 36 switch (v.getId()) { 37 case R.id.settings_add_game_folder_button: 38 addAGameFolder(); 39 break; 40 } 41 } 42 updateGameFoldersList()43 private void updateGameFoldersList() { 44 gamesFoldersListLayout.removeAllViews(); 45 46 for (String gameDirPath : SettingsManager.getGamesFolderList()) { 47 LayoutInflater inflater = LayoutInflater.from(this); 48 RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.settings_item_list, null); 49 50 // The name 51 TextView nameTextView = (TextView) layout.findViewById(R.id.controls_settings_preset_name); 52 nameTextView.setText(gameDirPath); 53 nameTextView.setTextSize(14); 54 55 // Option button (not present in the default folder) 56 final String path = gameDirPath; 57 ImageButton remove_button = (ImageButton) layout.findViewById(R.id.controls_settings_preset_option_button); 58 remove_button.setImageResource(R.drawable.ic_clear_black_24dp); 59 if (path.equals(SettingsManager.getEasyRPGFolder() + "/games")) { 60 layout.removeView(remove_button); 61 } else { 62 remove_button.setOnClickListener(new View.OnClickListener() { 63 @Override 64 public void onClick(View v) { 65 removeAGameFolder(path); 66 } 67 }); 68 } 69 70 gamesFoldersListLayout.addView(layout); 71 } 72 } 73 removeAGameFolder(String path)74 private void removeAGameFolder(String path) { 75 SettingsManager.removeAGameFolder(path); 76 77 // Update UI 78 updateGameFoldersList(); 79 } 80 addAGameFolder()81 private void addAGameFolder() { 82 new DirectoryChooser(this, SettingsManager.getEasyRPGFolder(), new Runnable() { 83 @Override 84 public void run() { 85 String pathToAdd = DirectoryChooser.getSelectedPath(); 86 SettingsManager.addGameDirectory(pathToAdd); 87 88 // Update UI 89 updateGameFoldersList(); 90 } 91 }); 92 } 93 }