Play-/Source/ui_android/java/com/virtualapplications/play/EmulatorDrawerFragment.java

119 lines
2.8 KiB
Java
Raw Permalink Normal View History

2015-08-23 02:28:35 -04:00
package com.virtualapplications.play;
import android.app.Fragment;
import android.graphics.Color;
import android.os.Bundle;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
2015-08-23 02:28:35 -04:00
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
public class EmulatorDrawerFragment extends Fragment
2015-08-23 02:28:35 -04:00
{
DrawerLayout _drawerLayout;
View _fragmentView;
ListView _listView;
EventListener _eventListener;
2015-08-23 02:28:35 -04:00
public interface EventListener
{
void onExitSelected();
2015-08-23 02:28:35 -04:00
void onSaveStateSelected();
2015-08-23 02:28:35 -04:00
void onLoadStateSelected();
void onSettingsSelected();
2015-08-23 02:28:35 -04:00
}
2015-08-23 02:28:35 -04:00
public void setEventListener(EventListener eventListener)
{
_eventListener = eventListener;
}
2015-08-23 02:28:35 -04:00
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
2015-08-23 02:28:35 -04:00
{
LinearLayout layout = (LinearLayout)inflater.inflate(R.layout.fragment_emulator_drawer, container, false);
2021-07-06 12:57:48 -04:00
_listView = layout.findViewById(R.id.fragment_emulator_drawer_list);
2015-08-23 02:28:35 -04:00
return layout;
}
2015-08-23 02:28:35 -04:00
@Override
public void onActivityCreated(Bundle savedInstanceState)
2015-08-23 02:28:35 -04:00
{
super.onActivityCreated(savedInstanceState);
2015-08-23 02:28:35 -04:00
_listView.setAdapter(
new ArrayAdapter<>(
getActivity(),
android.R.layout.simple_list_item_activated_1,
android.R.id.text1,
new String[]
{
getString(R.string.emulator_drawer_savestate),
getString(R.string.emulator_drawer_loadstate),
getString(R.string.main_menu_settings),
getString(R.string.emulator_drawer_exit),
}
)
2015-08-23 02:28:35 -04:00
);
2021-07-06 12:57:48 -04:00
_listView.setOnItemClickListener((parent, view, position, id) ->
selectItem(position)
2015-08-23 02:28:35 -04:00
);
}
2015-08-23 02:28:35 -04:00
public void setUp(View fragmentView, DrawerLayout drawerLayout)
{
_fragmentView = fragmentView;
_drawerLayout = drawerLayout;
_drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
int color = ThemeManager.getThemeColor(getActivity(), R.attr.colorPrimaryDark);
_fragmentView.setBackgroundColor(
Color.parseColor(("#" + Integer.toHexString(color)).replace("#ff", "#8e"))
2015-08-23 02:28:35 -04:00
);
}
2015-08-23 02:28:35 -04:00
public void openDrawer()
{
_drawerLayout.openDrawer(_fragmentView);
}
2015-08-23 02:28:35 -04:00
public void closeDrawer()
{
_drawerLayout.closeDrawer(_fragmentView);
}
2015-08-23 02:28:35 -04:00
public boolean isDrawerOpened()
{
2021-07-06 12:57:48 -04:00
return _drawerLayout != null && _drawerLayout.isDrawerOpen(_fragmentView);
2015-08-23 02:28:35 -04:00
}
2015-08-23 02:28:35 -04:00
private void selectItem(int position)
{
if(_eventListener == null) return;
switch(position)
{
case 0:
_eventListener.onSaveStateSelected();
break;
case 1:
_eventListener.onLoadStateSelected();
break;
case 2:
_eventListener.onSettingsSelected();
break;
case 3:
2015-08-23 02:28:35 -04:00
_eventListener.onExitSelected();
break;
}
}
}