psm styling

This commit is contained in:
olebeck 2024-04-28 16:02:08 +02:00
parent beea74a5b3
commit 0929574b08
38 changed files with 422 additions and 66 deletions

View File

@ -11,8 +11,9 @@
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
tools:targetApi="10">
<activity android:name=".MainActivity" android:screenOrientation="landscape">
tools:targetApi="10"
android:theme="@style/PSS.Theme">
<activity android:name=".MainActivity" android:theme="@style/PSS.Theme.Translucent.NoTitle" android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

View File

@ -1,19 +1,46 @@
package com.psmreborn.pkga;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class GameListAdapter extends ArrayAdapter<Game> implements Filterable {
public ArrayList<Game> fullGamesList;
private CharSequence lastSearch = null;
private final DownloadHandler downloadHandler;
public GameListAdapter(Context context) {
super(context, R.layout.list_item, R.id.list_content, new ArrayList<>());
public GameListAdapter(Context context, DownloadHandler downloadHandler) {
super(context, R.layout.list_item, new ArrayList<>());
this.downloadHandler = downloadHandler;
}
public interface DownloadHandler {
void call(Game game);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Game game = getItem(position);
assert game != null;
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false);
}
TextView item_title = (TextView)convertView.findViewById(R.id.download_item_desc01);
Button download_button = (Button)convertView.findViewById(R.id.button_download);
item_title.setText(game.title);
download_button.setOnClickListener(view -> {
this.downloadHandler.call(game);
});
return convertView;
}
public void setGameList(ArrayList<Game> games) {
@ -49,8 +76,11 @@ public class GameListAdapter extends ArrayAdapter<Game> implements Filterable {
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
GameListAdapter.this.clear();
for(Game game : (List<Game>)filterResults.values) {
GameListAdapter.this.add(game);
if (filterResults.values instanceof ArrayList) {
ArrayList<?> values = (ArrayList<?>) filterResults.values;
for (Object game : values) {
GameListAdapter.this.add((Game) game);
}
}
GameListAdapter.this.lastSearch = charSequence;
GameListAdapter.this.notifyDataSetChanged();

View File

@ -1,12 +1,17 @@
package com.psmreborn.pkga;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.ContextThemeWrapper;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
@ -39,15 +44,26 @@ public class MainActivity extends Activity {
wifiManager.setWifiEnabled(true);
}
titleAdapter = new GameListAdapter(this.getApplicationContext());
titleAdapter = new GameListAdapter(this.getApplicationContext(), game -> {
PsmGameDownloader downloader = new PsmGameDownloader(game);
if(downloader.exists()) {
DialogInterface.OnClickListener clickListener = (dialogInterface, i) -> {
if(i == -1) {
downloader.startDownload(MainActivity.this);
}
};
new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.PSS_Common_AlertDialog))
.setTitle("This Game is already installed!")
.setMessage("press continue to overwrite the current install")
.setPositiveButton("continue", clickListener)
.setNegativeButton("cancel", clickListener)
.show();
} else {
downloader.startDownload(MainActivity.this);
}
});
ListView listView = (ListView)this.findViewById(R.id.game_list);
listView.setAdapter(titleAdapter);
listView.setOnItemClickListener((adapterView, view, i, l) -> {
Game item = (Game)adapterView.getItemAtPosition(i);
PsmGameDownloader downloader = new PsmGameDownloader(item);
downloader.startDownload(MainActivity.this);
});
EditText editText = (EditText) this.findViewById(R.id.search_text);
editText.addTextChangedListener(new TextWatcher() {
@ -63,21 +79,25 @@ public class MainActivity extends Activity {
public void afterTextChanged(Editable editable) {}
});
// add refresh button callback
ImageButton refreshButton = (ImageButton) this.findViewById(R.id.refresh_button);
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MainActivity.this.refreshNps(true);
}
refreshButton.setOnClickListener(view -> {
RotateAnimation rotate = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(1000);
rotate.setRepeatMode(Animation.INFINITE);
rotate.setInterpolator(new LinearInterpolator());
refreshButton.setAnimation(rotate);
MainActivity.this.refreshNps(true, () -> {
refreshButton.clearAnimation();
});
});
refreshButton.requestFocus();
refreshNps(false);
refreshNps(false, () -> {});
}
public void refreshNps(boolean forceRefresh){
(new NoPayStationParser(new File(this.getFilesDir(), "PSM_GAMES.tsv"), forceRefresh)).startParsing(this);
public void refreshNps(boolean forceRefresh, NoPayStationParser.DoneCallback doneCallback){
NoPayStationParser nps = new NoPayStationParser(new File(this.getFilesDir(), "PSM_GAMES.tsv"), forceRefresh);
nps.startParsing(this, doneCallback);
}
}

View File

@ -25,7 +25,11 @@ public class NoPayStationParser {
this.forceRefresh = refresh;
}
public void startParsing(Activity activity) {
public interface DoneCallback {
void call();
}
public void startParsing(Activity activity, DoneCallback doneCallback) {
Handler handler = new Handler(activity.getMainLooper());
ProgressDialog dialog = new ProgressDialog(activity);
@ -49,6 +53,9 @@ public class NoPayStationParser {
showErrorDialog(activity, e.toString());
});
}
handler.post(() -> {
doneCallback.call();
});
}).start();
}

View File

@ -12,6 +12,7 @@ import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Environment;
import android.os.Handler;
import android.view.ContextThemeWrapper;
import java.io.BufferedInputStream;
import java.io.File;
@ -28,6 +29,7 @@ import yuv.pink.pkgextract.Pkg;
public class PsmGameDownloader {
private final File psmApplicationsFolder;
private final Game gameDownloading;
private final File outputDir;
public PsmGameDownloader(Game downloadGame){
this.gameDownloading = downloadGame;
@ -40,6 +42,12 @@ public class PsmGameDownloader {
}
//noinspection ResultOfMethodCallIgnored
this.psmApplicationsFolder.mkdirs();
this.outputDir = new File(this.psmApplicationsFolder, this.gameDownloading.titleId);
}
public boolean exists() {
return this.outputDir.exists();
}
public void startDownload(Activity activity) {
@ -89,7 +97,6 @@ public class PsmGameDownloader {
return;
}
File outputDir = new File(this.psmApplicationsFolder, this.gameDownloading.titleId);
//noinspection ResultOfMethodCallIgnored
outputDir.mkdir();
@ -151,7 +158,7 @@ public class PsmGameDownloader {
}
private void showErrorDialog(Activity activity, String task, String errorMessage) {
new AlertDialog.Builder(activity)
new AlertDialog.Builder(new ContextThemeWrapper(activity, R.style.PSS_Common_AlertDialog))
.setTitle("Error " + task + ": "+ gameDownloading.title)
.setMessage(errorMessage)
.setCancelable(false)
@ -160,7 +167,7 @@ public class PsmGameDownloader {
}
private void showDoneDialog(Activity activity, String what) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(activity, R.style.PSS_Common_AlertDialog));
builder.setTitle("Download " + what + ": "+ gameDownloading.title);
if(what.equals("complete")) {
builder.setPositiveButton("Start Game", (DialogInterface dialogInterface, int i) -> this.openGame(activity));

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/bt_normal_transparency50"/>
<item android:state_pressed="true" android:drawable="@drawable/bt_normal_f"/>
<item android:state_focused="true" android:drawable="@drawable/bt_normal_f"/>
<item android:drawable="@drawable/bt_normal"/>
</selector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp"/>
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/checkbox_normal_f"/>
<item android:state_focused="true" android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/checkbox_select_f"/>
<item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/checkbox_select"/>
<item android:state_enabled="false" android:drawable="@drawable/checkbox_select_dis"/>
<item android:drawable="@drawable/checkbox_normal"/>
</selector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,33 +1,40 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
android:noHistory="true"
android:orientation="horizontal">
android:orientation="vertical"
android:background="@drawable/bg_local_phone">
<EditText
android:id="@+id/search_text"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_marginRight="40dp"
android:ems="10"
android:hint="Search"
android:inputType="text"/>
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/search_text"
android:layout_width="match_parent"
android:layout_marginRight="40dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:ems="10"
android:hint="@string/search"
android:inputType="text" />
<ImageButton
android:id="@+id/refresh_button"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginLeft="-40dp"
android:layout_toRightOf="@+id/search_text"
android:background="@drawable/ic_menu_refresh"
android:focusable="true"
android:focusableInTouchMode="true"/>
<ImageButton
android:id="@+id/refresh_button"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginTop="5dp"
android:layout_marginLeft="-35dp"
android:layout_toRightOf="@+id/search_text"
android:background="@drawable/ic_menu_refresh"
android:focusable="true"
android:focusableInTouchMode="true"
android:contentDescription="@string/refresh"/>
</LinearLayout>
<ListView
android:id="@+id/game_list"
@ -36,6 +43,4 @@
android:layout_below="@+id/search_text"
android:textColor="@color/white" />
</RelativeLayout>
</LinearLayout>

View File

@ -1,15 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingLeft="11dp"
android:paddingRight="11dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="60dp">
<TextView
android:id="@+id/list_content"
android:textColor="@color/white"
android:layout_margin="4dp"
android:textSize="20sp"
android:layout_width="fill_parent"
android:layout_height="30sp"/>
</LinearLayout>
<ImageView
android:id="@+id/category_item_background"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/list_bg"
android:scaleType="fitCenter"/>
<LinearLayout
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="17dp"
android:paddingRight="13dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="60dp">
<ImageView
android:id="@+id/download_item_image"
android:layout_width="60dp"
android:layout_height="60dp"
android:scaleType="fitStart"
android:adjustViewBounds="true"
android:minHeight="60dp"/>
<LinearLayout
android:layout_gravity="center_vertical"
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="9dp"
android:layout_weight="1">
<TextView
android:textSize="@dimen/download_list_title_text_size_middle"
android:textStyle="bold"
android:textColor="@color/cmn_text"
android:id="@+id/download_item_desc01"
android:paddingRight="@dimen/text_shadow_padding_right"
android:layout_width="match_parent"
android:layout_height="wrap_content" style="@style/PSS.Widget.TextView.MultiLine.Shadow"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="19dp">
<TextView
android:textSize="14sp"
android:textColor="@color/cmn_text_tone_down"
android:id="@+id/download_item_desc04"
android:paddingRight="@dimen/text_shadow_padding_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content" style="@style/PSS.Widget.TextView.MultiLine.Shadow"/>
</LinearLayout>
</LinearLayout>
<LinearLayout android:gravity="right"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:textSize="13sp"
android:textColor="@color/cmn_text_tone_down"
android:id="@+id/download_item_desc03"
android:paddingRight="@dimen/text_shadow_padding_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content" style="@style/PSS.Widget.TextView.SingleLine.Shadow"/>
<TextView android:textSize="13sp"
android:textColor="@color/cmn_text_tone_down"
android:id="@+id/download_item_desc02"
android:paddingRight="@dimen/text_shadow_padding_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="11dp" style="@style/PSS.Widget.TextView.SingleLine.Shadow"/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:paddingRight="1dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/button_download"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bt_normal_button"
android:gravity="center"
android:minWidth="120dp"
android:minHeight="32dp"
android:text="@string/msg_download_vb"
android:textColor="#FFFFFF"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</FrameLayout>

View File

@ -7,4 +7,21 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="cmn_text">#ffffffff</color>
<color name="cmn_text_tone_down">#ccffffff</color>
<color name="cmn_text_legal">#b2ffffff</color>
<color name="cmn_text_shadow">#99000000</color>
<color name="cmn_text_disable">#7fffffff</color>
<color name="co_category_publisher">#ccffffff</color>
<color name="co_storetop_legal">#b3ffffff</color>
<color name="co_legal_link">#8cffffff</color>
<color name="co_notice">#fff19300</color>
<color name="co_background_shadow">#cc000000</color>
<color name="cmn_background_blue">#ff096cb5</color>
<color name="gray16">#ffffffff</color>
<color name="gray68">#ffffffff</color>
<color name="gray98">#ffffffff</color>
<color name="category_string">#fff3f3a4</color>
<color name="white_trans">#5affffff</color>
<color name="trans">#00000000</color>
</resources>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_shadow_padding">4dp</dimen>
<dimen name="text_shadow_padding_right">@dimen/text_shadow_padding</dimen>
<dimen name="download_list_title_text_size_middle">19sp</dimen>
</resources>

View File

@ -1,3 +1,6 @@
<resources>
<string name="app_name">PKGa</string>
<string name="refresh">refresh</string>
<string name="search">Search</string>
<string name="msg_download_vb">Download</string>
</resources>

View File

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="PSS">
</style>
<style name="PSS.Theme">
<item name="android:buttonStyle">@style/PSS.Widget.Button</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:alertDialogStyle">@style/PSS.Common.AlertDialog</item>
</style>
<style name="PSS.Theme.NoTitle.DefaultDialog">
<item name="android:buttonStyle">@style/PSS.Widget.Button</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="PSS.Theme.Dialog">
<item name="android:textColorPrimary">@color/cmn_text</item>
<item name="android:windowBackground">@drawable/dialog_bg_small</item>
<item name="android:windowNoTitle">true</item>
</style>
<style name="PSS.Theme.FullScreenDialog">
<item name="android:textColorPrimary">@color/cmn_text</item>
<item name="android:windowBackground">@drawable/dialog_bg_fullscreen</item>
<item name="android:windowNoTitle">true</item>
</style>
<style name="PSS.Theme.Dialog.HintDialog">
<item name="android:windowBackground">@drawable/dialog_bg_hint_all</item>
<item name="android:windowNoTitle">true</item>
</style>
<style name="PSS.Theme.NoTitle">
<item name="android:windowNoTitle">true</item>
</style>
<style name="PSS.Theme.Translucent"/>
<style name="PSS.Theme.Translucent.NoTitle">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:colorBackgroundCacheHint">@null</item>
</style>
<style name="PSS.Theme.Translucent.InApp">
<item name="android:windowBackground">?android:attr/colorBackground</item>
</style>
<style name="PSS.Theme.Translucent.Fullscreen">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowFullscreen">true</item>
<item name="android:colorBackgroundCacheHint">@null</item>
</style>
<style name="PSS.Theme.Translucent.Preview">
<item name="android:windowBackground">@color/co_background_shadow</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:colorBackgroundCacheHint">@null</item>
</style>
<style name="PSS.Theme.WebView">
<item name="android:buttonStyle">@style/PSS.Widget.Button</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="PSS.Common">
</style>
<style name="PSS.Common.AlertDialog">
<item name="android:fullDark">@drawable/checkout_bg</item>
<item name="android:topDark">@drawable/checkout_bg1</item>
<item name="android:centerDark">@drawable/checkout_bg2</item>
<item name="android:bottomDark">@drawable/checkout_bg3</item>
<item name="android:fullBright">@drawable/checkout_bg</item>
<item name="android:topBright">@drawable/checkout_bg1</item>
<item name="android:centerBright">@drawable/checkout_bg2</item>
<item name="android:bottomBright">@drawable/checkout_bg3</item>
<item name="android:bottomMedium">@drawable/checkout_bg3</item>
<item name="android:centerMedium">@drawable/checkout_bg2</item>
</style>
<style name="PSS.Common.CustomButtonBar">
<item name="android:background">@android:color/transparent</item>
<item name="android:paddingLeft">4dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingRight">4dp</item>
<item name="android:paddingBottom">1dp</item>
</style>
<style name="PSS.Widget" />
<style name="PSS.Widget.Button">
<item name="android:textStyle">normal</item>
<item name="android:textColor">@color/white</item>
<item name="android:background">@drawable/bt_normal_button</item>
</style>
<style name="PSS.Widget.TextView" />
<style name="PSS.Widget.TextView.SingleLine">
<item name="android:ellipsize">end</item>
<item name="android:lines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:singleLine">true</item>
<item name="android:includeFontPadding">true</item>
</style>
<style name="PSS.Widget.TextView.MultiLine">
<item name="android:ellipsize">@null</item>
<item name="android:maxHeight">9999dp</item>
<item name="android:scrollHorizontally">false</item>
<item name="android:singleLine">false</item>
<item name="android:includeFontPadding">true</item>
</style>
<style name="PSS.Widget.TextView.SingleLine.Shadow">
<item name="android:shadowColor">@color/cmn_text_shadow</item>
<item name="android:shadowDx">2</item>
<item name="android:shadowDy">2</item>
<item name="android:shadowRadius">6</item>
</style>
<style name="PSS.Widget.TextView.MultiLine.Shadow">
<item name="android:shadowColor">@color/cmn_text_shadow</item>
<item name="android:shadowDx">2</item>
<item name="android:shadowDy">2</item>
<item name="android:shadowRadius">6</item>
</style>
<style name="PSS.Widget.CheckBox.S1">
<item name="android:textSize">22sp</item>
<item name="android:textColor">@color/cmn_text</item>
<item name="android:background">@drawable/checkbox_background</item>
<item name="android:button">@drawable/checkbox_selector</item>
</style>
<style name="PSS.Widget.CheckBox">
<item name="android:textSize">16sp</item>
<item name="android:textColor">@color/cmn_text</item>
<item name="android:background">@drawable/checkbox_background</item>
<item name="android:button">@drawable/checkbox_selector</item>
<item name="android:scaleType">fitXY</item>
</style>
<style name="PSS.Common.ProgressDialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:textSize">10dp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">@color/cmn_text</item>
</style>
</resources>