Rename the main activities to be more consitent
NowPlayingActivity -> FullPlaybackActivity RemoteActivity -> MiniPlaybackActivity Also renamed referenced layouts and move the MiniPlaybackActivity layout inside the main activity file
This commit is contained in:
parent
4a24644485
commit
8b9e7a63b7
@ -7,7 +7,7 @@
|
|||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:name="ContextApplication">
|
android:name="ContextApplication">
|
||||||
<activity
|
<activity
|
||||||
android:name="NowPlayingActivity"
|
android:name="FullPlaybackActivity"
|
||||||
android:theme="@style/NoBackground"
|
android:theme="@style/NoBackground"
|
||||||
android:launchMode="singleTop" >
|
android:launchMode="singleTop" >
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
@ -15,6 +15,11 @@
|
|||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
<activity
|
||||||
|
android:name="MiniPlaybackActivity"
|
||||||
|
android:theme="@android:style/Theme.Dialog"
|
||||||
|
android:excludeFromRecents="true"
|
||||||
|
android:launchMode="singleInstance" />
|
||||||
<receiver
|
<receiver
|
||||||
android:name=".OneCellWidget"
|
android:name=".OneCellWidget"
|
||||||
android:label="Vanilla Music 1x1">
|
android:label="Vanilla Music 1x1">
|
||||||
@ -26,11 +31,6 @@
|
|||||||
android:name="android.appwidget.provider"
|
android:name="android.appwidget.provider"
|
||||||
android:resource="@xml/one_cell_widget" />
|
android:resource="@xml/one_cell_widget" />
|
||||||
</receiver>
|
</receiver>
|
||||||
<activity
|
|
||||||
android:name="RemoteActivity"
|
|
||||||
android:theme="@android:style/Theme.Dialog"
|
|
||||||
android:excludeFromRecents="true"
|
|
||||||
android:launchMode="singleInstance" />
|
|
||||||
<service android:name="PlaybackService" />
|
<service android:name="PlaybackService" />
|
||||||
<activity android:name="PreferencesActivity" />
|
<activity android:name="PreferencesActivity" />
|
||||||
</application>
|
</application>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<org.kreed.vanilla.RemoteLayout
|
<org.kreed.vanilla.MiniPlaybackActivityLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="wrap_content">
|
android:layout_width="wrap_content">
|
||||||
@ -31,4 +31,4 @@
|
|||||||
android:layout_marginRight="15px"
|
android:layout_marginRight="15px"
|
||||||
android:src="@drawable/kill" />
|
android:src="@drawable/kill" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</org.kreed.vanilla.RemoteLayout>
|
</org.kreed.vanilla.MiniPlaybackActivityLayout>
|
@ -40,7 +40,7 @@ import android.widget.RelativeLayout;
|
|||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
public class NowPlayingActivity extends PlaybackServiceActivity implements View.OnClickListener, SeekBar.OnSeekBarChangeListener, View.OnFocusChangeListener {
|
public class FullPlaybackActivity extends PlaybackActivity implements View.OnClickListener, SeekBar.OnSeekBarChangeListener, View.OnFocusChangeListener {
|
||||||
private IPlaybackService mService;
|
private IPlaybackService mService;
|
||||||
|
|
||||||
private ViewGroup mLayout;
|
private ViewGroup mLayout;
|
||||||
@ -69,7 +69,7 @@ public class NowPlayingActivity extends PlaybackServiceActivity implements View.
|
|||||||
{
|
{
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
|
||||||
setContentView(R.layout.now_playing);
|
setContentView(R.layout.full_playback);
|
||||||
|
|
||||||
mCoverView = (CoverView)findViewById(R.id.cover_view);
|
mCoverView = (CoverView)findViewById(R.id.cover_view);
|
||||||
mCoverView.setOnClickListener(this);
|
mCoverView.setOnClickListener(this);
|
@ -21,15 +21,18 @@ package org.kreed.vanilla;
|
|||||||
import org.kreed.vanilla.IPlaybackService;
|
import org.kreed.vanilla.IPlaybackService;
|
||||||
import org.kreed.vanilla.R;
|
import org.kreed.vanilla.R;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
public class RemoteActivity extends PlaybackServiceActivity implements View.OnClickListener {
|
public class MiniPlaybackActivity extends PlaybackActivity implements View.OnClickListener {
|
||||||
private View mOpenButton;
|
private View mOpenButton;
|
||||||
private View mKillButton;
|
private View mKillButton;
|
||||||
private View mPreviousButton;
|
private View mPreviousButton;
|
||||||
@ -42,7 +45,7 @@ public class RemoteActivity extends PlaybackServiceActivity implements View.OnCl
|
|||||||
super.onCreate(state);
|
super.onCreate(state);
|
||||||
|
|
||||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
setContentView(R.layout.remote_dialog);
|
setContentView(R.layout.mini_playback);
|
||||||
|
|
||||||
mCoverView = (CoverView)findViewById(R.id.cover_view);
|
mCoverView = (CoverView)findViewById(R.id.cover_view);
|
||||||
|
|
||||||
@ -86,7 +89,7 @@ public class RemoteActivity extends PlaybackServiceActivity implements View.OnCl
|
|||||||
if (view == mKillButton) {
|
if (view == mKillButton) {
|
||||||
ContextApplication.quit(this);
|
ContextApplication.quit(this);
|
||||||
} else if (view == mOpenButton) {
|
} else if (view == mOpenButton) {
|
||||||
startActivity(new Intent(this, NowPlayingActivity.class));
|
startActivity(new Intent(this, FullPlaybackActivity.class));
|
||||||
finish();
|
finish();
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
@ -102,4 +105,76 @@ public class RemoteActivity extends PlaybackServiceActivity implements View.OnCl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Custom layout that acts like a very simple vertical LinearLayout with
|
||||||
|
* special case: CoverViews will be made square at all costs.
|
||||||
|
*
|
||||||
|
* I would prefer this to be a nested class, but it does not seem like
|
||||||
|
* Android's layout inflater supports referencing nested classes in XML.
|
||||||
|
*/
|
||||||
|
class MiniPlaybackActivityLayout extends ViewGroup {
|
||||||
|
private int mCoverSize;
|
||||||
|
|
||||||
|
public MiniPlaybackActivityLayout(Context context, AttributeSet attrs)
|
||||||
|
{
|
||||||
|
super(context, attrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
|
||||||
|
{
|
||||||
|
int maxHeight = MeasureSpec.getSize(heightMeasureSpec);
|
||||||
|
|
||||||
|
int measuredHeight = 0;
|
||||||
|
int measuredWidth = 0;
|
||||||
|
|
||||||
|
View coverView = null;
|
||||||
|
for (int i = getChildCount(); --i != -1; ) {
|
||||||
|
View view = getChildAt(i);
|
||||||
|
if (view instanceof CoverView) {
|
||||||
|
coverView = view;
|
||||||
|
} else {
|
||||||
|
int spec = MeasureSpec.makeMeasureSpec(maxHeight - measuredHeight, MeasureSpec.AT_MOST);
|
||||||
|
view.measure(widthMeasureSpec, spec);
|
||||||
|
measuredHeight += view.getMeasuredHeight();
|
||||||
|
if (view.getMeasuredWidth() > measuredWidth)
|
||||||
|
measuredWidth = view.getMeasuredWidth();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (coverView != null) {
|
||||||
|
if (measuredHeight + measuredWidth > maxHeight) {
|
||||||
|
mCoverSize = maxHeight - measuredHeight;
|
||||||
|
measuredHeight = maxHeight;
|
||||||
|
} else {
|
||||||
|
mCoverSize = measuredWidth;
|
||||||
|
measuredHeight += measuredWidth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setMeasuredDimension(measuredWidth, measuredHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onLayout(boolean arg0, int arg1, int arg2, int arg3, int arg4)
|
||||||
|
{
|
||||||
|
int layoutWidth = getMeasuredWidth();
|
||||||
|
int top = 0;
|
||||||
|
|
||||||
|
for (int i = 0, end = getChildCount(); i != end; ++i) {
|
||||||
|
View view = getChildAt(i);
|
||||||
|
if (view instanceof CoverView) {
|
||||||
|
view.layout(0, top, layoutWidth, top + mCoverSize);
|
||||||
|
top += mCoverSize;
|
||||||
|
} else {
|
||||||
|
int height = view.getMeasuredHeight();
|
||||||
|
int width = view.getMeasuredWidth();
|
||||||
|
int left = (layoutWidth - width) / 2;
|
||||||
|
view.layout(left, top, layoutWidth - left, top + height);
|
||||||
|
top += height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -29,7 +29,7 @@ import android.os.Bundle;
|
|||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
|
|
||||||
public abstract class PlaybackServiceActivity extends Activity implements ServiceConnection {
|
public abstract class PlaybackActivity extends Activity implements ServiceConnection {
|
||||||
protected CoverView mCoverView;
|
protected CoverView mCoverView;
|
||||||
|
|
||||||
@Override
|
@Override
|
@ -145,7 +145,7 @@ public class PlaybackService extends Service implements Runnable, MediaPlayer.On
|
|||||||
|
|
||||||
if (mHandler.hasMessages(GO)) {
|
if (mHandler.hasMessages(GO)) {
|
||||||
mHandler.removeMessages(GO);
|
mHandler.removeMessages(GO);
|
||||||
Intent launcher = new Intent(this, NowPlayingActivity.class);
|
Intent launcher = new Intent(this, FullPlaybackActivity.class);
|
||||||
launcher.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
launcher.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
startActivity(launcher);
|
startActivity(launcher);
|
||||||
} else {
|
} else {
|
||||||
|
@ -43,6 +43,6 @@ public class PreferencesActivity extends PreferenceActivity {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onKeyLongPress(int keyCode, KeyEvent event)
|
public boolean onKeyLongPress(int keyCode, KeyEvent event)
|
||||||
{
|
{
|
||||||
return PlaybackServiceActivity.handleKeyLongPress(this, keyCode);
|
return PlaybackActivity.handleKeyLongPress(this, keyCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,94 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2010 Christopher Eby <kreed@kreed.org>
|
|
||||||
*
|
|
||||||
* This file is part of Vanilla Music Player.
|
|
||||||
*
|
|
||||||
* Vanilla Music Player is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Library General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
* option) any later version.
|
|
||||||
*
|
|
||||||
* Vanilla Music Player is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.kreed.vanilla;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.util.AttributeSet;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* RemoteLayout acts like a very simple vertical LinearLayout with special
|
|
||||||
* case: all CoverViews placed will be made square at all costs.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class RemoteLayout extends ViewGroup {
|
|
||||||
private int mCoverSize;
|
|
||||||
|
|
||||||
public RemoteLayout(Context context, AttributeSet attrs)
|
|
||||||
{
|
|
||||||
super(context, attrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
|
|
||||||
{
|
|
||||||
int maxHeight = MeasureSpec.getSize(heightMeasureSpec);
|
|
||||||
|
|
||||||
int measuredHeight = 0;
|
|
||||||
int measuredWidth = 0;
|
|
||||||
|
|
||||||
View coverView = null;
|
|
||||||
for (int i = getChildCount(); --i != -1; ) {
|
|
||||||
View view = getChildAt(i);
|
|
||||||
if (view instanceof CoverView) {
|
|
||||||
coverView = view;
|
|
||||||
} else {
|
|
||||||
int spec = MeasureSpec.makeMeasureSpec(maxHeight - measuredHeight, MeasureSpec.AT_MOST);
|
|
||||||
view.measure(widthMeasureSpec, spec);
|
|
||||||
measuredHeight += view.getMeasuredHeight();
|
|
||||||
if (view.getMeasuredWidth() > measuredWidth)
|
|
||||||
measuredWidth = view.getMeasuredWidth();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (coverView != null) {
|
|
||||||
if (measuredHeight + measuredWidth > maxHeight) {
|
|
||||||
mCoverSize = maxHeight - measuredHeight;
|
|
||||||
measuredHeight = maxHeight;
|
|
||||||
} else {
|
|
||||||
mCoverSize = measuredWidth;
|
|
||||||
measuredHeight += measuredWidth;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setMeasuredDimension(measuredWidth, measuredHeight);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onLayout(boolean arg0, int arg1, int arg2, int arg3, int arg4)
|
|
||||||
{
|
|
||||||
int layoutWidth = getMeasuredWidth();
|
|
||||||
int top = 0;
|
|
||||||
|
|
||||||
for (int i = 0, end = getChildCount(); i != end; ++i) {
|
|
||||||
View view = getChildAt(i);
|
|
||||||
if (view instanceof CoverView) {
|
|
||||||
view.layout(0, top, layoutWidth, top + mCoverSize);
|
|
||||||
top += mCoverSize;
|
|
||||||
} else {
|
|
||||||
int height = view.getMeasuredHeight();
|
|
||||||
int width = view.getMeasuredWidth();
|
|
||||||
int left = (layoutWidth - width) / 2;
|
|
||||||
view.layout(left, top, layoutWidth - left, top + height);
|
|
||||||
top += height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -42,7 +42,7 @@ public class SongNotification extends Notification {
|
|||||||
contentView = views;
|
contentView = views;
|
||||||
icon = statusIcon;
|
icon = statusIcon;
|
||||||
flags |= Notification.FLAG_ONGOING_EVENT;
|
flags |= Notification.FLAG_ONGOING_EVENT;
|
||||||
Intent intent = new Intent(context, remoteView ? RemoteActivity.class : NowPlayingActivity.class);
|
Intent intent = new Intent(context, remoteView ? MiniPlaybackActivity.class : FullPlaybackActivity.class);
|
||||||
contentIntent = PendingIntent.getActivity(context, 0, intent, 0);
|
contentIntent = PendingIntent.getActivity(context, 0, intent, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -294,6 +294,6 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe
|
|||||||
@Override
|
@Override
|
||||||
public boolean onKeyLongPress(int keyCode, KeyEvent event)
|
public boolean onKeyLongPress(int keyCode, KeyEvent event)
|
||||||
{
|
{
|
||||||
return PlaybackServiceActivity.handleKeyLongPress(getContext(), keyCode);
|
return PlaybackActivity.handleKeyLongPress(getContext(), keyCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user