Skip to content

Commit

Permalink
[Android] Register display listener, create activity manager in CXBMC…
Browse files Browse the repository at this point in the history
…App::onStart(). Now matches the reverse operations in CXBMCApp::onDestroy().
  • Loading branch information
ksooo committed Mar 19, 2022
1 parent d0b4d73 commit 0789af7
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
15 changes: 8 additions & 7 deletions xbmc/platform/android/activity/XBMCApp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,11 @@ void CXBMCApp::onStart()
intentFilter.addAction("android.intent.action.SCREEN_OFF");
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(*this, intentFilter);
m_mediaSession.reset(new CJNIXBMCMediaSession());
m_mediaSession = std::make_unique<CJNIXBMCMediaSession>();
m_activityManager =
std::make_unique<CJNIActivityManager>(getSystemService(CJNIContext::ACTIVITY_SERVICE));
m_inputHandler.setDPI(GetDPI());
RegisterDisplayListener();
}
}

Expand Down Expand Up @@ -376,13 +380,13 @@ void CXBMCApp::onLostFocus()
m_hasFocus = false;
}

void CXBMCApp::RegisterDisplayListener(CVariant* variant)
void CXBMCApp::RegisterDisplayListener()
{
CJNIDisplayManager displayManager(getSystemService("display"));
if (displayManager)
{
android_printf("CXBMCApp: installing DisplayManager::DisplayListener");
displayManager.registerDisplayListener(CXBMCApp::Get().getDisplayListener());
displayManager.registerDisplayListener(m_displayListener.get_raw());
}
}

Expand All @@ -392,16 +396,13 @@ void CXBMCApp::UnregisterDisplayListener()
if (displayManager)
{
android_printf("CXBMCApp: removing DisplayManager::DisplayListener");
displayManager.unregisterDisplayListener(getDisplayListener());
displayManager.unregisterDisplayListener(m_displayListener.get_raw());
}
}

void CXBMCApp::Initialize()
{
CServiceBroker::GetAnnouncementManager()->AddAnnouncer(this);
runNativeOnUiThread(RegisterDisplayListener, nullptr);
m_activityManager.reset(new CJNIActivityManager(getSystemService(CJNIContext::ACTIVITY_SERVICE)));
m_inputHandler.setDPI(GetDPI());
}

void CXBMCApp::Deinitialize()
Expand Down
3 changes: 1 addition & 2 deletions xbmc/platform/android/activity/XBMCApp.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ class CXBMCApp
void onDisplayAdded(int displayId) override;
void onDisplayChanged(int displayId) override;
void onDisplayRemoved(int displayId) override;
jni::jhobject getDisplayListener() { return m_displayListener.get_raw(); }

bool isValid() { return m_activity != NULL; }

Expand Down Expand Up @@ -259,7 +258,7 @@ class CXBMCApp
static void SetRefreshRateCallback(CVariant *rate);
static void SetDisplayModeCallback(CVariant *mode);

static void RegisterDisplayListener(CVariant*);
void RegisterDisplayListener();
void UnregisterDisplayListener();

ANativeActivity* m_activity{nullptr};
Expand Down

0 comments on commit 0789af7

Please sign in to comment.